oskarno oskarno - 5 months ago 6
jQuery Question

How to access values in a multidimensional JSON array with jQuery

So I fetch a multidimensional JSON array with getJSON and I want to access values in the array, but can't reach longer than the first element in the array.

"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",


...and so on.

My code:

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


The output is an object, I don't know any better way to paste it, copied from the browsers console: "
> Object {id: "1", name: "EmÄmejeriet", address: "GrenvÀgen 1-3, zipcode: "577 39", disctrict: "Hulsfred"...}


I've searched and tested different approaches as I said, from this forum, but couldn't get my head around it.

Answer

If the output of value.producer is an object, then you should be able to access the properties of that object. For example, value.producer.name should output 'asdfsadf'.

UPDATE

It looks as though your json data is not valid. (I'm assuming "producers" is a property of the data object and the value of that property is an array of all of the "producer" objects.)

I've created this fiddle ( http://jsfiddle.net/kAsPm/ ) and it works as expected. I just had to change the comma to a colon after "producers":

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