I'm trying to build up a client-side form with https://github.com/rjsf-team/react-jsonschema-form
To do so I'm using SimplSchema → JSON Schema conversion.
And for array fields I noticed that I don't get a proper result.
This issue mostly refers to this line —
If I start with such schema:
const animals = new SimpleSchema({
animals: { type: Array },
'animals.$': { type: Object },
'animals.$.label': { type: String },
});
I get a JSONSchema:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"animals": {
"type": "array",
"items": [
{
"type": "object",
"properties": {
"label": {
"type": "string"
}
},
"required": ["label"],
"additionalProperties": false
}
],
"additionalItems": false
}
},
"required": ["animals"],
"additionalProperties": false
}
And if I use this JSON schema directly with formData:
{
"animals": [
{
"label": "Cat"
},
{
"label": "Dog"
},
{
"label": "Whale"
}
]
}
I get only a single item:

This is because items of the same shape should be defined as an object, not array:
https://json-schema.org/learn/getting-started-step-by-step#optional
Am I thinking about that wrong or is this a bug?
I'm trying to build up a client-side form with https://github.com/rjsf-team/react-jsonschema-form
To do so I'm using SimplSchema → JSON Schema conversion.
And for array fields I noticed that I don't get a proper result.
This issue mostly refers to this line —
simpl-schema/src/toJsonSchema.ts
Line 14 in 555f790
If I start with such schema:
I get a JSONSchema:
{ "$schema": "https://json-schema.org/draft/2020-12/schema", "type": "object", "properties": { "animals": { "type": "array", "items": [ { "type": "object", "properties": { "label": { "type": "string" } }, "required": ["label"], "additionalProperties": false } ], "additionalItems": false } }, "required": ["animals"], "additionalProperties": false }And if I use this JSON schema directly with
formData:{ "animals": [ { "label": "Cat" }, { "label": "Dog" }, { "label": "Whale" } ] }I get only a single item:

This is because items of the same shape should be defined as an object, not array:
https://json-schema.org/learn/getting-started-step-by-step#optional
Am I thinking about that wrong or is this a bug?