toJson method

Map<String, dynamic> toJson()

Implementation

Map<String, dynamic> toJson() {
  final defs = {};
  for (final t in elements) {
    defs[t.tagName] = t.toJson();
  }

  final rootElementJson = root.toJson();
  // root.toJson() structure:
  // we want:
  // {
  //  "$root_tag_ref": "#/$defs/"+_rootTagName,
  //  **root,
  //  "$defs": defs
  // }

  final result = {"\$root_tag_ref": "#/\$defs/$_rootTagName", "\$defs": defs};

  // Merge root into result
  for (var entry in rootElementJson.entries) {
    result[entry.key] = entry.value;
  }

  return result;
}