Tengo una cadena Json como esta:
var json = "[{"Id":"1234", "FirstName":"One", "Index":"32", "Type":"t1", "Children":[{"Id":"976","FirstName":"Two","Index":"32","Type":"t2", "Children":[{"Id":"428", "FirstName":"Three", "Index":"32", "Type":"t3", "Children":[], "ParentId":"f235"}], "ParentId":"f826"}], "ParentId":"0000"}]"Quiero crear una cantidad de objetos con solo los campos Id, FirstName, Children, no Index y Type. Cada objeto también tiene una serie de servicios secundarios.
Entonces, obj1 tendrá las propiedades Firstname, ParentId y Children, y si profundiza hasta sus Children, tendrá otro objeto con Id, firstname, ParentId, y para esto, si profundiza, no hay más Children.
I began by doing something like var servicejson = JSON.parse(jsonStr); for (let i = 0; i < servicejson).length; i++) { var parentnode = { Id: servicejson[i].Id, FirstName: servicejson[i].JsonValue, ParentId: servicejson[i].ParentId, }; //check if children if (servicejson[i].Children.length > 0) { //do something here ?? } }Habrá un Objeto y dentro de ese habrá un Niño, y dentro de ese Niño hay otro nodo Niño. Me quedé atascado asignándolos al objeto o presionando una matriz en el objeto, ya que asumo que puede necesitar una llamada recursiva para asignar la matriz Children y aquí es donde necesito ayuda. ¿Alguna idea sobre cómo puedo hacer esto?
puedes hacer algo como esto
var json = [{"Id":"1234", "FirstName":"One", "Index":"32", "Type":"t1", "Children":[{"Id":"976","FirstName":"Two","Index":"32","Type":"t2", "Children":[{"Id":"428", "FirstName":"Three", "Index":"32", "Type":"t3", "Children":[], "ParentId":"f235"}], "ParentId":"f826"}], "ParentId":"0000"}] const transform = ({Id, FirstName, Children}) => ({ Id, FirstName, Children: Children.map(transform) }) const result = json.map(transform) console.log(result)