使用gson反序列化类中的多个ArrayLists

时间:2012-07-15 11:09:51

标签: arrays gson

我有一个包含多个列表的课程。类设计是否适合gson工作?

我的课程:

Class Data
{
    List<String> actor;
    List<Integer> text_relevance;
    List<String> title;
}

json字符串如下... 这个json的类设计是否正确?

{
    "data":
    {
        "actor":["Abercrombie, Ian","Baker, Dee Bradley","Burton, Corey",
                 "Eckstein, Ashley","Futterman, Nika","Kane, Tom",
                 "Lanter, Matt","Taber, Catherine","Taylor, James Arnold",
                 "Wood, Matthew"],
        "text_relevance":["308"],
        "title":["Star Wars: The Clone Wars"]
    }
}

1 个答案:

答案 0 :(得分:0)

是的,您的代码是正确的。我用这段代码反序列化了它:

    Gson gson = new Gson();
    Type type = new TypeToken<Map<String, Data>>() {}.getType();
    Map<String, Data> map = gson.fromJson(json, type);
    Data data = map.get("data");

请注意,Gson会将“308”之类的字符串转换为相应的整数。这通常用于允许very large values失去精确度。但它对你的情况也很合适。