2

配列と他の要素を含む外部 JSON ファイルを JavaScript で解析したいと思います。「TotalUsers.json」という名前の JSON ファイルは次のとおりです。

{"@version":"1.0",
"@generatedDate":"12/20/10 5:24 PM",
"day":[{"@value":"53819","@date":"2010-12-01"},
    {"@value":"57558","@date":"2010-12-02"},
    {"@value":"61141","@date":"2010-12-03"}]}

day 配列の「value」要素と「day」要素を、daysTotal と valuesTotal の 2 つの別個の配列で取得したいと考えています。JQuery の getJSON メソッドを使用してこれを達成しようとしています。ただし、日の配列の内部フォーマットと混同しています。

これをフォーマットすると、2 つの出力配列は次のようになります。

値の合計 = [53819, 57558, 61141]; 日数合計 = [2010 年 12 月 1 日、2010 年 12 月 2 日、2010 年 12 月 3 日];

これは私がソファーにいることです。

$.getJSON('TotalUsers.json', function(data) {
    var valuesTotal  = [];
    var daysTotal = [];
    $.each(data, function(key, val) {
        if (key == day)
        {
            daysTotal.push('<li id="' + key.key + '">' + key.val + '</li>');
        }
        else
        {
            valuesTotal .push('<li id="' + key + '">' + val + '</li>');
        }
    });
});

ロジックを教えてください。私は JSON と JavaScript が初めてです。

どんな助けでも大歓迎です。

ありがとう。

4

1 に答える 1

4

dayは未定義です。おそらく を意味'day'していましたが、実際に必要なのは次のとおりです。

$.getJSON('TotalUsers.json', function(data) {
    var valuesTotal = [];
    var daysTotal = [];
    $.each(data.day, function(key, obj) {
        valuesTotal.push('<li id="value-' + key + '">' + obj["@value"] + '</li>');
        daysTotal.push('<li id="day-' + key + '">' + obj["@date"] + '</li>');
    });
});​

day 配列を反復処理して、2 つの子配列を設定します。

デモ: http://jsfiddle.net/hjjTU/

于 2012-11-01T04:26:57.110 に答える