mmu*_*478 6 java arrays json get
JSONArray arr =
[
{"key1":"value1"},
{"key2":"value2"},
{"key3":"value3"},
{"key4":"value4"}
]
Run Code Online (Sandbox Code Playgroud)
arr.get("key1")抛出错误.如何通过键获取值JSONArray?
arr.getString("key1")也会抛出错误.我应该循环播放数组吗?这是唯一的方法吗?
错误是什么?
在Eclipse Debug透视图中,这些表达式返回为; error(s)_during_the_evaluation
Che*_*shi 14
你可以解析jsonResponse下面的代码:
private void parseJsonData(String jsonResponse){
try
{
JSONArray jsonArray = new JSONArray(jsonResponse);
for(int i=0;i<jsonArray.length();i++)
{
JSONObject jsonObject1 = jsonArray.getJSONObject(i);
String value1 = jsonObject1.optString("key1");
String value2 = jsonObject1.optString("key2");
String value3 = jsonObject1.optString("key3");
String value4 = jsonObject1.optString("key4");
}
}
catch (JSONException e)
{
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
听起来您想从 JSONObjects 数组中查找特定键。问题是,它是一个数组,所以你必须遍历每个元素。一种解决方案,假设没有重复键是......
private Object getKey(JSONArray array, String key)
{
Object value = null;
for (int i = 0; i < array.length(); i++)
{
JSONObject item = array.getJSONObject(i);
if (item.keySet().contains(key))
{
value = item.get(key);
break;
}
}
return value;
}
Run Code Online (Sandbox Code Playgroud)
现在,假设您想在数组中找到“key1”的值。您可以使用以下行获取值:String value = (String) getKey(array, "key1")。我们转换为字符串是因为我们知道“key1”指的是一个字符串对象。
| 归档时间: |
|
| 查看次数: |
62741 次 |
| 最近记录: |