Gson

2012-04-24 20 views
12

kullanarak JSON dizisi nasıl deserialize edilir Gson kullanarak bir JSON dizisini kaldırmak istiyorum. Bunu yapmaya çalıştım ama yapamadım.Gson

JSON dizisi:

$array = array (
    array ('ID' => 1 , 'Title' => 'Lion' , 'Description' => 'bla bla' , 'ImageURL' => 'http:\/\/localhost\/lion.jpg') , 
    array ('ID' => 2 , 'Title' => 'Tiger' , 'Description' => 'bla bla' , 'ImageURL' => 'http:\/\/localhost\/tiger.jpg') , 
); 
echo json_encode ($array); 
+0

kullanabilirsiniz daha yön sorun hakkında orada sağlayabilir mi? Giriş nedir, nereden alıyorsunuz, neyi deniyorsunuz? – Michael

+0

Proplem bir Objcet [] dizisi almayı denediğimde gson.fromJson() Ben bir null vule alıyorum, bu JSON dizisini bir PHP sayfasından alıyorum: –

cevap

36

Eğer TypeToken kullanmaya gerek bir JSONArray serisini için:

[ 
    {"ID":1,"Title":"Lion","Description":"bla bla","ImageURL":"http:\/\/localhost\/lion.jpg"}, 
    {"ID":1,"Title":"Tiger","Description":"bla bla","ImageURL":"http:\/\/localhost\/tiger.jpg"} 
] 

ben bir PHP komut dosyasından JSON dizi olsun. Bununla ilgili daha fazla bilgiyi GSON user guide'dan okuyabilirsiniz. Örnek kod: sonra bir JSONArray varsa

@Test 
public void JSON() { 
    Gson gson = new Gson(); 
    Type listType = new TypeToken<List<MyObject>>(){}.getType(); 
    // In this test code i just shove the JSON here as string. 
    List<Asd> asd = gson.fromJson("[{'name':\"test1\"}, {'name':\"test2\"}]", listType); 
} 

Eğer

... 
JSONArray jsonArray = ... 
gson.fromJson(jsonArray.toString(), listType); 
... 
+1

List nedir asd burada? – Seenu69

+0

Bu konuda bana yardımcı olabilecek herkes var - http://stackoverflow.com/questions/27666558/deserializing-json-array-using-gson? –

+1

FYI, Tür için java.lang.reflect.Type şeklindedir. Milyonlarca Tür sınıfı var, bu nedenle otomatik tamamlama kafa karıştırıcı olabilir. – Nativ