Haciendo JSON hijos de padres relación

votos
0

Tengo una línea JSON con el ID de padre

[{id:1,href:#,text:ABC,parentid:null},
{id:2,href:#,text:DEF,parentid:1},
{id:3,href:#,text:GHI,parentid:2},
{id:4,href:#,text:JKL,parentid:2}]

Ahora estoy tratando de hacer algo como esto

introducir

Soy el éxito para que sea por el código de abajo, pero creo que puede ser la puesta a punto más con el mejor enfoque. Mi enfoque se puede hacer por sólo dos niveles, pero yo estaba buscando un número n de nivel. ¿Puede alguien ayudarme?

data.d.results.map(function(item, i) {
        delete item['__metadata']
        var label = item.Title
        var parentid = item.ParentMenuId
        var id = item.Id
        var url = item.Link

        var _item = { id: id, href: url, text: label, children: [] }
        if (!parentid) {
          source.push(_item)
        } else {
          var chd = true
          for (var i = 0; i < source.length; i++) {
            if (source[i][id] == parentid) {
              source[i][children].push(_item)
              chd = false
              break
            }
          }
          if (chd == true) {
            for (var i = 0; i < source.length; i++) {
              if (source[i][children].length > 0) {
                for (var j = 0; j < source[i][children].length; j++) {
                  if (source[i][children][j][id] == parentid) {
                    source[i][children][j][children].push(_item)
                    break
                  }
                }
              }
            }
          }
        }
      })
Publicado el 19/09/2018 a las 17:00
fuente por usuario
En otros idiomas...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more