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

  • Ben Vivona

    Ben Vivona

    24 Ocak 2010
  • The Scary Snowman

    The Scary Sn

    1 ŞUBAT 2011
  • Watcher3223

    Watcher3223

    15 Kasım 2007