【问题标题】:Accessing json objects with no name访问没有名称的 json 对象
【发布时间】:2014-11-19 07:23:53
【问题描述】:

我正在努力访问下面的这个 json 代码。我之前看到的每个 json 值都是这样的:

 var hold = { name: 'alex', job: 'realtor'}

所以要访问这个名字,我会做一些类似于 hold.name 的操作。但是我的json数据是这样的

[
[
        {
            "count": "80",
            "countTxt":"Buyer logins",
            "participantsTxt":"Total for all participating member companies:",
            "participantCount":"523"
        },
        {
            "count": "233",
            "countTxt":"Searches",
            "participantsTxt":"Total for all participating member companies:",
            "participantCount":"628"
        },
        {
            "count": "533",
            "countTxt":"Views of our member pages",
            "participantsTxt":"Total for all participating member companies:",
            "participantCount":"2,365"
        }
    ],


[
        {
            "count": "80",
            "countTxt":"Total vists",
            "participantsTxt":"Total for all participating member companies:",
            "participantCount":"412"
        },
        {
            "count": "53",
            "countTxt":"Unique visitors",
            "participantsTxt":"Total for all participating member companies:",
            "participantCount":"731"
        },
        {
            "count": "1:12 min",
            "countTxt":"Total time spent on page",
            "participantsTxt":"Total for all participating member companies:",
            "participantCount":"784.2 mins"
        }
    ]

]

数据是嵌套的,没有名称,所以我不知道如何访问。我知道这个问题似乎有些初级,但我还没有看到任何示例解析看起来像这样的代码。它总是像上面的一个更简单的例子。我的 .getjson 代码看起来像这样...

var requestURL = 'assets/js/stats.json';
$.getJSON(requestURL, function(data){
        $.each(data, function(key, value) {
            $('body').append($('<div>' + data[0].name, {

            }));
            console.log(data);
        });

    });

我的控制台返回两个像这样的对象

Array[3], Array[3]] Array[3]: 
Array[3] [Array[3], Array[3]] 

所以我知道它正在取回数据,我只需要能够选择我想要的内容并将其附加到 DOM。我尝试了十种不同的变体,但没有任何效果。请帮忙!?

【问题讨论】:

  • 只需使用 [0] 访问第一个数组等。或者先遍历它们并使用索引访问它们
  • 只使用 [0] 不起作用。这也是在 jsonlint.com 检查的有效 json

标签: jquery ajax json getjson


【解决方案1】:

您只需要在第一次迭代中再迭代一次。您有一个包含对象数组的数组。所以尝试这样的事情

http://jsfiddle.net/mnth1xe1/5/

$.each(data, function(key, val) {
    $.each(val, function(key, value) {

        console.log(value.countTxt);
    });

});

【讨论】:

  • 那行不通,只是在我的控制台中给了我更多的数组。
  • 请查看更新后的答案。您的对象在第二次迭代中存储在值对象中。
  • 谢谢,这是一个很大的部分,现在我需要循环遍历它并将每个应用到我的 HTML 的不同部分。你不会碰巧有这方面的经验吧?
  • 您究竟需要对 HTML 和数据做什么?你能说得更具体一些吗,我可以帮你。
  • 我也有点困惑,为什么在第二个语句中你传递的是 'val' 而不是 'key'?我不确定为什么会这样
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-15
  • 1970-01-01
  • 2012-06-09
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
相关资源
最近更新 更多