Quiero estructurar los datos que obtengo de un servidor, para poder usar el componente TreeView de Material UI : https://material-ui.com/api/tree-view/

Estoy obteniendo grandes cantidades de datos, así que quiero obtener nodos secundarios del servidor cuando el usuario hace clic en el botón expandir. Entonces, cuando se expande el primer nodo, se envía una solicitud HTTP a un servidor que devuelve todos los elementos secundarios de ese nodo. Cuando se expande otro nodo, se recuperan los hijos de ese nodo, etc.

Al iniciar la página, quiero obtener el nodo raíz y sus elementos secundarios. El JSON devuelto se verá más o menos así:

 { "division": { "id": "1234", "name": "Teest", "address": "Oslo" }, "children": [ { "id": "3321", "parentId": "1234", "name": "Marketing", "address": "homestreet" }, { "id": "3323", "parentId": "1234", "name": "Development", "address": "homestreet" } ] } 

Al expandir el nodo Marketing , quiero hacer una llamada HTTP para buscar los hijos de este nodo. Entonces obtendría JSON así:

 { "children": [ { "id": "2212", "parentId": "3321", "name": "R{amp}amp;D", "address": "homestreet" }, { "id": "4212", "parentId": "3321", "name": "Testing", "address": "homestreet" } ] } 

Pero estoy confundido sobre cómo crear una estructura de datos de este tipo que luego pueda usarse en el componente TreeView . ¿Cómo puedo crear tal estructura?