我只是想知道是否有人可以帮助我..
所以,我有一个我使用Fractal开发的API来解析对象,以生成一个很好的JSON,供我正在制作的Android应用程序使用。
JSON输出看起来像这样:
{
"data": [
{
"id": 1,
"name": "John Smith",
"description": "Information about John Smith",
"games": {
"data": [
{
"name": "Batman Arkham City",
"description": "Information about Game 1"
},
{
"name": "Silent Hill",
"description": "Information about Game 2"
}
]
}
}
]
}
要使用Gson解析这个问题,我显然必须创建一个 Person 模型,该模型具有 ArrayList 事情是..注意数据键?我如何指示Gson解析这个?我理解删除它使JSON看起来像这样:
{
"data": [
{
"id": 1,
"name": "John Smith",
"description": "Information about John Smith",
"games": [
{
"name": "Batman Arkham City",
"description": "Information about Game 1"
},
{
"name": "Silent Hill",
"description": "Information about Game 2"
}
]
}
]
}
My Person模型看起来像这样:
public class Person
{
public String name;
public ArrayList<Game> games;
就像我说的那样,删除数据键将允许我将数据解析为Java模型,如下所示:
peopleArray = jsonObject.getJSONArray( "data" );
Type listType = new TypeToken<ArrayList<Person>>() {}.getType();
ArrayList<Person> result = new Gson().fromJson( peopleArray.toString(), listType );
所以基本上,有什么办法可以告诉Gson游戏阵列会有一个数据键吗?对不起信息过载,希望这有意义吗?
TA
答案 0 :(得分:0)
使用自定义GSON序列化程序/解串器管理解决此问题。
http://www.studytrails.com/java/json/java-google-json-custom-serializer-deserializer.jsp