使用Gson解析JSON(由Fractal生成)

时间:2015-08-15 21:22:19

标签: java android json fractals

我只是想知道是否有人可以帮助我..

所以,我有一个我使用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

1 个答案:

答案 0 :(得分:0)

使用自定义GSON序列化程序/解串器管理解决此问题。

http://www.studytrails.com/java/json/java-google-json-custom-serializer-deserializer.jsp