toJson method
Convert to json object.
Implementation
Map<String, Object> toJson() => {
if (type != SchemaType.anyOf)
'type': type.toJson(), // Omit the field while type is anyOf
if (format case final format?) 'format': format,
if (description case final description?) 'description': description,
if (title case final title?) 'title': title,
if (nullable case final nullable?) 'nullable': nullable,
if (enumValues case final enumValues?) 'enum': enumValues,
if (items case final items?) 'items': items.toJson(),
if (minItems case final minItems?) 'minItems': minItems,
if (maxItems case final maxItems?) 'maxItems': maxItems,
if (minimum case final minimum?) 'minimum': minimum,
if (maximum case final maximum?) 'maximum': maximum,
if (properties case final properties?)
'properties': {
for (final MapEntry(:key, :value) in properties.entries)
key: value.toJson()
},
// Calculate required properties based on optionalProperties
if (properties != null)
'required': optionalProperties != null
? properties!.keys
.where((key) => !optionalProperties!.contains(key))
.toList()
: properties!.keys.toList(),
if (propertyOrdering case final propertyOrdering?)
'propertyOrdering': propertyOrdering,
if (anyOf case final anyOf?)
'anyOf': anyOf.map((e) => e.toJson()).toList(),
};