【问题标题】:Parsing external JSON file(containing array elements) in Javascript using JQuery使用 JQuery 在 Javascript 中解析外部 JSON 文件(包含数组元素)
【发布时间】:2012-10-21 16:12:17
【问题描述】:

我想用 javascript 解析外部 JSON 文件,其中包含一个数组和其他元素。这是名为“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"}]}

我想在两个单独的数组 daysTotal 和 valuesTotal 中获取 day 数组的“value”和“day”元素。我正在尝试使用 JQuery 的 getJSON 方法来实现这一点。但是,我对 day 数组的内部格式感到困惑。

格式化后两个输出数组的样子:

valuesTotal = [53819, 57558, 61141]; daysTotal = [2010-12-01, 2010-12-02, 2010-12-03];

这是我目前为止,

$.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 还是很陌生。

我们将不胜感激。

谢谢。

【问题讨论】:

  • day 未定义,您的意思可能是'day'

标签: java javascript jquery html json


【解决方案1】:

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 数组,填充您的两个子数组。

演示:http://jsfiddle.net/hjjTU/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-15
    • 2016-08-02
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2016-07-12
    • 1970-01-01
    相关资源
    最近更新 更多