【发布时间】:2018-02-22 21:15:09
【问题描述】:
我有一个动态的 json 响应,因此即使键名和索引号也可以更改
{
"Assigned": {
"DC": 7,
"EmpCode": "E0104",
"FS": 8
}
}
我想将其转换为 JsonArray 并在对象“已分配”下动态获取所有键名和值。但我只是通过尝试获取值名。
try {
//converting dynamic jsonobject to json array and fetching value as well as key name
JSONObject jsonObject = response.getJSONObject("Assigned");
Iterator x = jsonObject.keys();
JSONArray jsonArray = new JSONArray();
while (x.hasNext()) {
String key = (String) x.next();
jsonArray.put(jsonObject.get(key));
}
Toast.makeText(RolesActivity.this,jsonArray.toString(), Toast.LENGTH_LONG).show();
Log.d("jsonarray",jsonArray.toString());
}
catch (Exception e)
{
e.printStackTrace();
Toast.makeText(RolesActivity.this, e.toString(), Toast.LENGTH_SHORT).show();
}
【问题讨论】:
-
那是完全错误的 API 架构——使用 json 对象作为 json 数组。 正确的解决方案是在后端修复它
-
该 api 也被网站和其他应用程序使用,因此不能要求对其进行编辑。我只需要使用它。请帮助
-
只有动态得到对应的键名和值,我的工作才算完成
-
尝试使用 hashmap。!
-
你不能编辑代码并在这里放一个hashmap的示例代码吗?