【问题标题】:Deserialize multiple ArrayLists in a class using gson使用 gson 反序列化一个类中的多个 ArrayList
【发布时间】:2012-07-15 11:09:50
【问题描述】:

我有一个包含多个列表的课程。类设计是否适合 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"]
    }
}

【问题讨论】:

  • text_relevance 不是整数数组,它是一个字符串数组,因为它的数字周围有“”。

标签: arrays gson


【解决方案1】:

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

    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 失去精度。但它也适用于您的情况。

【讨论】:

  • 我不应该为actor、text_relavence等创建一个类吗?
猜你喜欢
  • 1970-01-01
  • 2016-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-17
  • 2023-03-03
相关资源
最近更新 更多