你的對象必須保存你的json指令的層次結構。對於你的榜樣,它會是這樣的:
public class Object {
@SerializedName("field1")
public String fieldOne;
@SerializedName("field2")
public String fieldTwo;
@SerializedName("field3")
public String fieldThree;
@SerializedName("field4")
public String fieldFour;
}
public class Name {
@SerializedName("object1")
public Object obj;
}
public class GsonObj {
@SerializedName("Name")
public Name name;
}
使用下面的電話:
String json = "{\"Name\":{" +
"\"object1\":{" +
"\"field1\":\"17\",\"field2\":\"360\",\"field3\":\"19\",\"field4\":\"sun\",\"field5\":\"rain\"}}}";
Gson gson = new Gson();
GsonObj jsonResult = gson.fromJson(json, GsonObj.class);
Log.d("test", "field one: "+jsonResult.name.obj.fieldOne);
Log.d("test", "field two: "+jsonResult.name.obj.fieldTwo);
Log.d("test", "field three: "+jsonResult.name.obj.fieldThree);
Log.d("test", "field four: "+jsonResult.name.obj.fieldFour);
+1。有趣的是,Gson似乎沒有像'@SerializedName(「Name/object1」)''或'@SerializedName(「Name.object1」)''這樣的符號直接從子對象獲取值。 – Jonik 2013-10-25 15:16:17
(順便說一句,刪除Android標記,因爲這不是Android特定的。) – Jonik 2013-10-25 15:19:58