2017-05-25 25 views
-2

我收到来自服务器下面的字符串响应。(注意users值用方括号):安卓:名单列表的JSON关键值转换为对象的名单

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

我怎样才能把它转换到用户对象列表?最好使用GSON。

P.S.我的用户类包含字段用户名和名称。

P.S.S.由于JSON输出的格式完全不同(在我的情况下,格式与JSONArray fromat不同),并且该帖子的答案不能解决我的问题,所以此帖不适用于this post

谢谢!

+0

这是我如何设法解决这个问题:[链接](https://stackoverflow.com/questions/44188105/java-convert-string-representation-of-array-of-arrays-to-an-list -of-对象?noredirect = 1个#comment75390511_44188105)(这不是一个重复顺便说一句..) –

回答

1

检查以下链接此

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

什么是'response'类型?这是在我的情况一个字符串,我得到“无法解析方法getJSONArray(java.lang.String中)” –

+0

'response'是'JSONObject' @DaniilOrekhov –

+0

@ cricket_007是的,我试过了,但现在我越来越“无法解析方法'fromJson(org.json.JSONArray,java.lang.reflect.Type)'” –

0

使用你的JSON转换成模型

jsonschema

  • 选择源型JSON和注释风格GSON

GSON代码:

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

希望这将有助于您的疑问。

相关问题