How to access values in a multidimensional JSON ar

2020-03-27 10:25发布

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.

3条回答
The star\"
2楼-- · 2020-03-27 10:48

Open your firebug's console, paste the following and execute:

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);

Now, as you will have two objects under the second level of your JSON, you need to specify the object and then you will see that it will allow you to select its properties:

parsed.peopleList[0].name

Before working with the dynamically generated JSON, get some dummy data for testing purposes (with the same structure, of course) and play with it before implementing the final code.

查看更多
混吃等死
3楼-- · 2020-03-27 10:48

I used tempo.js rendering engine, it does multidimensional array rendering. here is the link http://tempojs.com/

download tempo.cs and follow the link .

查看更多
forever°为你锁心
4楼-- · 2020-03-27 10:50

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",
            ...
查看更多
登录 后发表回答