【问题标题】:Android: convert json key value of list of lists to list of objects [duplicate]Android:将列表列表的json键值转换为对象列表[重复]
【发布时间】:2017-10-26 10:57:21
【问题描述】:

我从服务器收到以下字符串响应(注意users 的值中使用的方括号):

{
   "amount": 3,
   "users": [
      [
         "username1",
         "Name1"
      ],
      [
         "username2",
         "Name2"
      ],
      [
         "username3",
         "Name3"
      ]
   ]
}

如何将其转换为用户对象列表?最好使用 GSON。

附:我的 User 类包含字段用户名和名称。

附言这篇文章不是 this post 的重复,因为 JSON 输出的格式完全不同(在我的情况下,格式与 JSONArray fromat 不同)并且该帖子的答案并不能解决我的问题......

谢谢!

【问题讨论】:

  • 这是我设法解决这个问题的方法:link(顺便说一句,这不是重复的......)

标签: java android json gson


【解决方案1】:

使用以下链接将您的 JSON 转换为模型

jsonschema

  • 选择 Source type JSON 和 Annotation style Gson

Gson 代码:

Gson mGson = new Gson();
Type listType = new TypeToken<List<users>>() {}.getType();
List<users> object = mGson.fromJson(jsonString, listType);

希望这能帮助您解决疑问。

【讨论】:

    【解决方案2】:

    检查一下

    Type listType = new TypeToken<ArrayList<YourClass>>(){}.getType();
    List<YourClass> yourClassList = new Gson().fromJson(response.getJSONArray("users"), listType);
    

    【讨论】:

    • response 的类型是什么?在我的情况下它是一个字符串,我得到“无法解析方法 getJSONArray (java.lang.String)”
    • responseJSONObject @DaniilOrekhov
    • @cricket_007 是的,我试过了,但现在我得到“无法解决方法fromJson(org.json.JSONArray, java.lang.reflect.Type)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    • 2022-08-17
    • 2018-05-01
    • 2019-07-09
    • 2020-12-11
    • 2016-10-06
    相关资源
    最近更新 更多