我想知道是否有可能检查一些关键使用Java在一些jsonArray存在。例如:让说,我有这样的JSON字符串:Java的嵌套JSONArray
{'abc':'hello','xyz':[{'name':'Moses'}]}
让我们假设该阵列由JSONArray
类型存储在jsnArray。 我要检查,如果“ABC”键在jsnArray存在,如果存在的话,我应该得到true
否则我应该得到false
(在“ABC”的情况下,我应该得到如此)。 Thnkas
我想知道是否有可能检查一些关键使用Java在一些jsonArray存在。例如:让说,我有这样的JSON字符串:Java的嵌套JSONArray
{'abc':'hello','xyz':[{'name':'Moses'}]}
让我们假设该阵列由JSONArray
类型存储在jsnArray。 我要检查,如果“ABC”键在jsnArray存在,如果存在的话,我应该得到true
否则我应该得到false
(在“ABC”的情况下,我应该得到如此)。 Thnkas
你贴什么是JSONObject
,在其内部有一个JSONArray
。在这个例子中唯一的数组是'xyz'
,它只包含一个元素。
甲JSONArray例子是下列之一:
{
'jArray':
[
{'hello':'world'},
{'name':'Moses'},
...
{'thisIs':'theLast'}
]
}
可以测试是否JSONArray
称为jArray
,包含给定的JSONObject
(一个类似于上面的示例情况)内包含键“你好”与以下功能:
boolean containsKey(JSONObject myJsonObject, String key) {
boolean containsHelloKey = false;
try {
JSONArray arr = myJsonObject.getJSONArray("jArray");
for(int i=0; i<arr.length(); ++i) {
if(arr.getJSONObject(i).get(key) != null) {
containsHelloKey = true;
break;
}
}
} catch (JSONException e) {}
return containsHelloKey;
}
,并呼吁以这种方式:
containsKey(myJsonObject, "hello");
我认为它灵魂与try/catch – vlio20 2013-03-15 17:58:26
完成。非常感谢你 :) – 2013-03-15 18:07:02
使用正则表达式不会因为打开和关闭括号的工作。
你可以使用JSON库(如google-gson)到您的JSON数组转换成Java数组,然后处理它。
JSON数组没有键值对,JSON对象一样。
如果您将它保存为一个JSON对象,你可以使用这种方法检查键: http://www.json.org/javadoc/org/json/JSONObject.html#has(java.lang.String)
如果使用JSON智能图书馆在Java解析JSON字符串 -
您可以解析JSON数组下面的代码片段 -
像 -
JSONObject resultsJSONObject = (JSONObject) JSONValue.parse(<<Fetched JSon String>>);
JSONArray dataJSon = (JSONArray) resultsJSONObject.get("data");
JSONObject[] updates = dataJSon.toArray(new JSONObject[dataJSon.size()]);
for (JSONObject update : updates) {
String message_id = (String) update.get("message_id");
Integer author_id = (Integer) update.get("author_id");
Integer createdTime = (Integer) update.get("created_time");
//Do your own processing...
//Here you can check null value or not..
}
你可以有更多的信息 - https://code.google.com/p/json-smart/
希望这有助于你...
这不是一个有效的json数组。或者你的意思是'{'abc':'hello','xyz':[{'name':'Moses'}]}或'[{'abc':'hello'},{'xyz':[ '名': '摩西'}}]'? – Alex 2013-03-15 17:20:45
我会改变它,谢谢。仍然我怎么做我问过的? – vlio20 2013-03-15 17:22:56