2012-04-24 8 views
12

Gsonを使用してJSON配列を逆シリアル化する必要があります。私はそれを試みたが、私はそれをすることができなかった。Gsonを使用してJSON配列を逆シリアル化する方法

JSON配列:

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

私は、PHPスクリプトからJSONの配列を取得:

$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

を使用することができますが、あなたが問題について提供することができ、より方向ですか?入力は何ですか、どこから取得していますか、何を試していますか? – Michael

+0

Proplemはobjcet []配列をgson.fromJson()で取得しようとしています。null vuleを取得すると、このJSON配列がPHPページから取得されます: –

答えて

36

あなたがTypeTokenを使用する必要がJSONArrayをデシリアライズするには。 GSON user guideから詳細を読むことができます。コード例:

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

あなたはJSONArrayを持っているなら、あなたは

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

List は何ですか? – Seenu69

+0

誰も私にこれを手伝ってもらえますか? - http://stackoverflow.com/questions/27666558/deserializing-json-array-using-gson? –

+1

FYI、タイプはjava.lang.reflect.Typeです。百万のタイプのクラスがあるので、自動補完が混乱する可能性があります。 – Nativ

関連する問題