如何使用jQuery访问多维JSON数组中的值

时间:2012-12-19 19:43:43

标签: jquery json multidimensional-array getjson

所以我用getJSON获取一个多维JSON数组,我想访问数组中的值,但是不能超过数组中的第一个元素。

"producers",
[
    {
        "producer":{
            "id":"1",
            "name":"Em\u00e5mejeriet",
            "address":" Grenv\u00e4gen 1-3",
            "zipcode":" 577 39",
            "district":" Hultsfred",
            "webpage":"http:\/\/www.emamejeriet.se",
            "logoURL":"..\/producenter\/images\/ema.png",
            "latitude":"57.4999",
            "longitude":"15.828"
        }
    },
    {
        "producer":{
            "id":"2",

......等等。

我的代码:

$.getJSON("/url/producers.json", function(data) {
    $.each(data, function() {
        $.each(this, function(key, value) {
            console.log(value.producer);
        });
    });
});

输出是一个对象,我不知道从浏览器控制台复制粘贴它的更好方法:“> Object {id: "1", name: "Emåmejeriet", address: "Grenvägen 1-3, zipcode: "577 39", disctrict: "Hulsfred"...}

我在这个论坛上搜索并测试了不同的方法,但是无法理解它。

3 个答案:

答案 0 :(得分:4)

打开你的firebug控制台,粘贴以下内容并执行:

var json = '{' + 
'"peopleList":[' +
'{"id":1,"name":"marcelo","address":"rua meh","phone":"85 99999999"},'+
'{"id":2,"name":"marcelo2","address":"rua meh2","phone":"85 9999.9999"}]}';

var parsed = JSON.parse(json);

现在,由于您将在JSON的第二级下面有两个对象,您需要指定该对象,然后您将看到它将允许您选择其属性:

parsed.peopleList[0].name

在使用动态生成的JSON之前,获取一些虚拟数据用于测试目的(当然具有相同的结构)并在实现最终代码之前使用它。

答案 1 :(得分:3)

如果value.producer的输出是一个对象,那么您应该能够访问该对象的属性。例如,value.producer.name应输出'asdfsadf'。

<强>更新

看起来您的json数据无效。 (我假设“producer”是数据对象的属性,该属性的值是所有“producer”对象的数组。)

我创建了这个小提琴(http://jsfiddle.net/kAsPm/),它按预期工作。我只需要在“生产者”之后将逗号更改为冒号:

"producers":  // changed from "producers",
[
    {
        "producer":{
            "id":"1",
            ...

答案 2 :(得分:0)

我使用了tempo.js渲染引擎,它进行了多维数组渲染。 链接在这里 http://tempojs.com/

下载tempo.cs并点击链接。