如何通过jQuery解析多个json?

时间:2011-07-27 10:30:50

标签: javascript jquery json

我知道如何使用jquery来简化json。

JSON

 {
        "Symbol": "AAL.L",
        "Name": "ANGLO AMERICAN",
        "Last": "3061.50",
        "Date": "7/26/2011",
        "Time": "11:35am",
        "Change": "+35.00(+1.16%)",
        "High": "3087.00",
        "Low": "3047.00",
        "Volume": "3160820",
        "Bid": "3061.50",
        "Ask": "3062.50",
        "PercentChange": "+1.16%"
    }

jquery的

 $.getJSON("1.json", function(data) {
                    $("div").html("<p>Symbol="+data.Symbol+" Time="+data.Time+" Bid="+data.Bid+"</p>");
             });

但是,现在我有一个json文件,如:

[
    {
        "Symbol": "AAL.L",
        "Name": "ANGLO AMERICAN",
        "Last": "3061.50",
        "Date": "7/26/2011",
        "Time": "11:35am",
        "Change": "+35.00(+1.16%)",
        "High": "3087.00",
        "Low": "3047.00",
        "Volume": "3160820",
        "Bid": "3061.50",
        "Ask": "3062.50",
        "PercentChange": "+1.16%"
    },
    {
        "Symbol": "AAL.L",
        "Name": "ANGLO AMERICAN",
        "Last": "3061.50",
        "Date": "7/26/2011",
        "Time": "11:35am",
        "Change": "+35.00(+1.16%)",
        "High": "3087.00",
        "Low": "3047.00",
        "Volume": "3160820",
        "Bid": "3061.50",
        "Ask": "3062.50",
        "PercentChange": "+1.16%"
    },
    {
        "Symbol": "AAL.L",
        "Name": "ANGLO AMERICAN",
        "Last": "3061.50",
        "Date": "7/26/2011",
        "Time": "11:35am",
        "Change": "+35.00(+1.16%)",
        "High": "3087.00",
        "Low": "3047.00",
        "Volume": "3160820",
        "Bid": "3061.50",
        "Ask": "3062.50",
        "PercentChange": "+1.16%"
    }
]

我不能用那种方式来游行。结果是“未定义”。 我怎么能这样做呢?另外,我希望结果如下:

Symbol = [num, num, num], Time = [num, num, num], Bid = [num, num, num]

有人可以告诉我该怎么做。 非常感谢!!!

3 个答案:

答案 0 :(得分:4)

$.getJSON("1.json", function(data) {
    var i = 0, dataSize = data.length, html = '';

    for(i; i < dataSize; i++){
        html += "<p>Symbol="+data[i].Symbol+" Time="+data[i].Time+" Bid="+data[i].Bid+"</p>";
    }

    $("div").html(html);
});

修改

基于@Robert Koritnik的评论,“而不是单个对象 [...] [你] 找回了 [...]的对象数组[你] 必须访问。“

答案 1 :(得分:1)

[]表示数组,因此您需要按data[0]之类的键访问项目。你可以用for或$.each()循环遍历它们。

$.getJSON("1.json", function(data) {
  $.each(data, function(i,obj){
    $("div").html("<p>Symbol="+obj.Symbol+" Time="+obj.Time+" Bid="+obj.Bid+"</p>");
  });                    
});

如果您希望结果重新构建,那么您必须以相同的方式循环它并创建一个新结构。 ID给出了一个例子,但我不明白你要去哪里[num,num,num] ....

答案 2 :(得分:0)

只需使用迭代器

 data[0].Symbol