2

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

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

4

3 回答 3

4

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

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

于 2012-12-19T20:07:33.467 回答
3

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

更新

看起来您的 json 数据无效。(我假设“生产者”是数据对象的一个​​属性,并且该属性的值是所有“生产者”对象的数组。)

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

"producers":  // changed from "producers",
[
    {
        "producer":{
            "id":"1",
            ...
于 2012-12-19T19:59:18.290 回答
1

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

下载 tempo.cs 并点击链接。

于 2012-12-19T21:53:21.833 回答