İç içe JSON nesneleri - her şey için dizileri kullanmak zorunda mıyım? | Netgez.com
SORU
20 Ocak 2010, ÇARŞAMBA


İç içe JSON nesneleri - her şey için dizileri kullanmak zorunda mıyım?

Her şeyi diziler yapmak zorunda kalmayayım JSON nesneleri iç içe olması için herhangi bir yolu var mı? Hatasız ayrıştırılması benim nesne için böyle bir yapıya ihtiyacımız var gibi görünüyor:

{"data":[{"stuff":[
    {"onetype":[
        {"id":1,"name":"John Doe"},
        {"id":2,"name":"Don Joeh"}
    ]},
    {"othertype":[
        {"id":2,"company":"ACME"}
    ]}]
},{"otherstuff":[
    {"thing":
        [[1,42],[2,2]]
    }]
}]}

Eğer bir değişken "sonuç" böyle iç içe nesneleri erişmek için var: . denen bu nesneyi alıp

result.data[0].stuff[0].onetype[0]

ve

result.data[1].otherstuff[0].thing[0]

Bu bana beceriksiz gereksiz görünüyor, mümkünse tercih ederim:

result.stuff.onetype[0]

ve

result.otherstuff.thing

Ama her şey nasıl bir dizi ise nesne anahtarları doğrudan kullanabilir miyim? Kafası karışmış ve eğitimsiz aklıma böyle bir şey daha uygun gibi görünüyor:

{"data":
    {"stuff":
        {"onetype":[
            {"id":1,"name": ""},
            {"id":2,"name": ""}
        ]}
        {"othertype":[
            {"id":2,"xyz": [-2,0,2],"n":"Crab Nebula","t":0,"c":0,"d":5}
        ]}
    }
    {"otherstuff":
        {"thing":
            [[1,42],[2,2]]
        }
    }
}

Muhtemelen burada temel bir şeyi yanlış yaptım, ama ikinci stil nesne kabul etmek için bir WordPress kullanmak çözümleyici (ne natvie FF çözümleyici jQuery 1.4 ile kullanılır) alamıyorum. Eğer biri beni aydınlatabilir eğer minnetle mutluluk duyacağız!

Çok teşekkürler

JS

CEVAP
20 Ocak 2010, ÇARŞAMBA


Diziler kullanmana gerek yok.

JSON değerleri diziler, nesneler, ya da ilkel (sayı veya dize).

Bu gibi JSON yazabilirsiniz:

{ 
    "stuff": {
        "onetype": [
            {"id":1,"name":"John Doe"},
            {"id":2,"name":"Don Joeh"}
        ],
        "othertype": {"id":2,"company":"ACME"}
    }, 
    "otherstuff": {
        "thing": [[1,42],[2,2]]
     }
}

Bu gibi kullanabilirsiniz:

obj.stuff.onetype[0].id
obj.stuff.othertype.id
obj.otherstuff.thing[0][1]  //thing is a nested array or a 2-by-2 matrix.
                            //I'm not sure whether you intended to do that.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • 24 Канал

    24 КанаÐ

    5 ÅžUBAT 2006
  • Kenneth HÃ¥konsen

    Kenneth HÃ¥k

    13 Mart 2011
  • wafflepwn

    wafflepwn

    14 AÄžUSTOS 2008