所以我用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"...}
我在这个论坛上搜索并测试了不同的方法,但是无法理解它。
答案 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并点击链接。