Visualizzazione dei risultati da 1 a 3 su 3

Visualizzazione discussione

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    590

    scorrere json multidimensionale

    salve, ho un array
    var stack=new Array('N1','N15');
    e file json così costituito
    codice:
    {    "name": "root",
        "id": "N0",
        "type": "root",
        "children": [
            {
                "name": "livello1",
                "size": 2000,
                "id": "N1",
                "children": [   
                         {
                               "name": "livello2",
                               "size": 1000,
                               "id": "N12",
                               "children": null
                           }
    ...
    in altre parole un semplice json multidimensionale.

    Vorrei scorrere questo file e aggiungere ad un array di supporto (activenodes) un riferimento al nodo con id=NXX.

    il codice è questo, ma è veramente brutto, e per ora copre solo il primo livello di profondità del json, per coprire i restanti dovrei fare altri for nidificati.
    C'è modo di migliorare il tutto con una funzione ricorsiva o comunque più efficiente?
    Ho provato con la ricorsione ma come vedete non è possibile in maniera immediata, il controllo su nodeid lo faccio in maniera diversa sul livello 0 e sugli altri livelli (prima value==nodeid e poi nodeid==obj.id) vorrei almeno uniformare tutto al secondo metodo..

    codice:
    function SeekAndPush(json,nodeid){
        $.each(json, function(key, value) {
            if(key==='id'&& value==nodeid) {
                activenodes.push(json)
            }
            if(key=='children' ) {
                $.each(value, function(i,obj) {
                    if(nodeid==obj.id) {
                        console.log(obj)
                        activenodes.push(obj)
                    }
                        
                })
            }
        });
    
    }
    Ultima modifica di jimbo0; 04-06-2015 a 12:54

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.