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

所以我用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"...}

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

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

UPDATE

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

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

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

打开你的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之前,获取一些虚拟数据用于测试目的(当然具有相同的结构)并在实现最终代码之前使用它。

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

下载tempo.cs并点击链接。

    Interesting Posts