2013-03-27 2 views
1

я иметь формат JSON каккак читать мульти-уровни JSon формат с помощью JQuery

[ 
    { 
     id: 15, 
     diemdung: "a" 
    }, 
    { 
     id: "16", 
     diemdung: "b", 
     khoangcach: "300", 
     pho: "c", 
     da: [ 
      { 
       lancan: "d", 
       kc: "333" 
      }, 
      { 
       lancan: "e", 
       kc: "322" 
      } 
     ] 
    }, 
    ... 
] 

я с помощью PHP как print json_encode($rows);
и я стараюсь читать его на клиенте с помощью JQuery, как

$.getJSON(url,function(json){ 
    $.each(json,function(key, val){ 
     $.each(this.da,function(){ 
      alert(this.kc); 
     }); 
    }); 
}); 

но он не работает. Как я это делаю? благодаря

ответ

1

Если ваш код в противном случае работает, вы можете быть получение следующей ошибки:

TypeError: obj is undefined 

Это связано с тем, что первый объект во внешнем массиве не имеет значения для свойства «da». Прежде чем попытаться перебрать массив, содержащий свойство «da», вы должны проверить, существует ли он.

Try:

$.getJSON(url,function(json){ 
    $.each(json,function(){ 
     if (this.da) { 
      $.each(this.da,function(){ 
       alert(this.kc); 
      }); 
     } 
    }); 
}); 
0
$.each(json, function(arrayID, arrayVal) { 
    //alert(arrayVal.id); 
    $.each(arrayVal.da, function(daKey,daData) { 
    alert(daData.kc); 
    }); 
}); 

Heres мой же SO вопрос некоторое время назад для дальнейшего кода

JQuery $.each() JSON array object iteration

редактировать переименовать некоторые переменные, чтобы сделать более ясным

+0

Что предупредительного шоу? –

+0

Следует предупреждать каждый раз, когда встречается значение узла «kc» в массиве json, если предупреждение было предупреждено (arrayVal.id + daData.kc), будет показывать узел идентификатора первого каждого + kc вложенного узла val, ect –

+0

спасибо все, но это не работает для меня. я пытаюсь ответить @john S и это работает :) – DeLe

0

Для иерархии п уровня

var str = '{"countries":[{"name":"USA","grandfathers":[{"gFName":"Steve","grandfathersKid":[{"gFKName": "Linda","kid": [{"name": "Steve JR", "friends": [{"name": "Kriss|John|Martin|Steven"}]}]}]}]}]}'; 
var obj = jQuery.parseJSON(str); 
parseJsonString(obj); 

Функция:

function parseJsonString(data){  
    $.each(data, function(index, val){ 

     if($.type(val) == 'object' || $.type(val) == 'array'){ 
      product.parseJsonString(val); 
     }else{ 
      alert(index + ' - ' + val); 
     } 

    }); 
} 
Смежные вопросы