Как получить доступ к значениям в многомерном массиве JSON с помощью jQuery


Поэтому я извлекаю многомерный массив JSON с помощью getJSON и хочу получить доступ к значениям в массиве, но не могу достичь большего, чем первый элемент в массиве.

"producers",
[
    {
        "producer":{
            "id":"1",
            "name":"Emu00e5mejeriet",
            "address":" Grenvu00e4gen 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 2

3 ответа:

Если вывод value.producer является объектом, то вы должны иметь доступ к свойствам этого объекта. Например, value.producer.name должно вывести 'asdfsadf'.

Обновить

Похоже, что ваши данные json недействительны. (я предполагаю, что "производители" - это свойство объекта данных, а значение этого свойства-массив всех объектов" производителя".)

Я создал эту скрипку ( 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, получите некоторые фиктивные данные для целей тестирования (с той же структурой, конечно) и поиграйте с ними перед реализацией окончательного кода.

Я использовал темп.JS rendering engine, он выполняет рендеринг многомерных массивов. вот эта ссылка http://tempojs.com/

Скачать tempo.cs и перейдите по ссылке .