use*_*224 4 java android json list gson
我是GSON的新手.我需要将以下JSON响应转换为List.
JSON响应:
{
"data": [{
"data": {
"ac_id": "000",
"user_id": "000",
"title": "AAA"
}
}, {
"data": {
"ac_id": "000",
"user_id": "000",
"title": "AAA"
}
}]
}
Run Code Online (Sandbox Code Playgroud)
我有一个类来投射数据
帐户.java的
public class Account {
public int ac_id;
public int user_id;
public String title;
@Override
public String toString(){
return "Account{"+
"ac_id="+ac_id+
", user_id="+user_id+
", title="+title+'}';
}
}
Run Code Online (Sandbox Code Playgroud)
当我在课堂上发表回复时,我得到:
[Account{ac_id="000", user_id="000", title="AAA"}, Account{ac_id="000", user_id="000", title="AAA"}]
Run Code Online (Sandbox Code Playgroud)
现在我需要将这两个值放入一个List<Account>.
你有什么建议?
JSONObject data = new JSONObject(response);
JSONArray accounts = data.getJSONArray("data");
List<Account> accountList = new Gson().fromJson(accounts.toString(), new TypeToken<ArrayList<Account>>(){}.getType());
Run Code Online (Sandbox Code Playgroud)
如果您无法更改JSON响应以删除内部"数据"键,则可以使用以下命令:
Gson gson = new Gson();
ArrayList<Account> accountList = new ArrayList<Account>();
JSONArray accounts = data.getJSONArray("data");
for (int i = 0; i < accounts.length(); i++) {
JSONObject a = accounts.getJSONObject(i).getJSONObject("data");
accountList.add(gson.fromJson(a.toString(), Account.class));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8931 次 |
| 最近记录: |