Array nested inside Object

I have a schema with the following nesting. array → object → object → array I am able to render upto the last object but unable to render the array nested inside the object.

Hi @pheoniX,

Generally speaking JSON Forms supports arbitrary nesting. Please post your schema and uischema and which renderer set you are using in which version.

Hi @sdirix, So basically I took the vanilla package and updated it according to my requirements.
Now, the situations is that in my InputControl I’m using recursion for rendering nested objects and if there the type gets array, then I’m using JsonFormsDispatch to render the TableArrayControl. But the issue is that the path value which I’m sending as props to the JsonFormsDispatch and the path value inside the TableArrayControl is different and also different then what is expected as per the rootSchema.
So, Is there any way to modify the path in between that?
Following is the schema and uiSchema resp.
{
“type”: “object”,
“properties”: {
“CPNFSimulator”: {
“type”: “array”,
“items”: {
“type”: “object”,
“properties”: {
“receive”: {
“type”: “object”,
“properties”: {
“messageID”: {
“type”: “string”
},
“validate”: {
“type”: “object”,
“properties”: {
“statusCode”: {
“type”: “array”,
“items”: {
“type”: “integer”
}
}
}
}
}
},
“send”: {
“type”: “object”,
“properties”: {
“messageID”: {
“type”: “string”
},
“method”: {
“type”: “string”
},
“url”: {
“type”: “string”
}
}
}
}
}
},
“regalSpecificConfig”: {
“type”: “object”,
“properties”: {
“tcIterationCount”: {
“type”: “integer”
}
}
},
“statsResult”: {
“type”: “array”,
“items”: {}
}
},
“required”:
}

{
“type”: “Categorization”,
“elements”: [
{
“type”: “Category”,
“label”: “General”,
“elements”: [
{
“type”: “HorizontalLayout”,
“elements”: [
{
“type”: “Control”,
“scope”: “#/properties/CPNFSimulator”,
“label”: “CPNFSimulator”,
“options”: {
“multi”: true
}
},
{
“type”: “Control”,
“scope”: “#/properties/statsResult”,
“label”: “StatsResult”,
“options”: {
“multi”: true
}
}
]
}
]
},
{
“type”: “Category”,
“label”: “RegalSpecificConfig”,
“elements”: [
{
“type”: “HorizontalLayout”,
“elements”: [
{
“type”: “Control”,
“scope”: “#/properties/regalSpecificConfig”,
“label”: “RegalSpecificConfig”
}
]
}
]
}
]
}

The React Vanilla renderers currently have the limitation that they don’t have an object renderer.

So once a control points to an object, which will happen by default in the object -> object case, the default React Vanilla renderers will fail.

However an object renderer is easily added as it’s straightforward to implement one. One can basically copy the one of the Material UI renderer set and adapt it for React Vanilla.

Once you have custom renderers in place it’s difficult to help without their code as you can basically do arbitrary logic in them.