有没有办法确定 json 对象的不同内容是什么?
它是否包含json数组?如果是这样,该 json 数组中是否有任何 json 对象?
是的,你当然可以这样做。看一下JSONObject
参考资料:
http://www.json.org/javadoc/org/json/JSONObject.html
您可以使用keys()
迭代器来发现当前节点内可用的元素。
然后,您可以使用instanceof
运算符来检查某个节点是否为JSONArray
或String
其他。
尝试这个
public void analyzeJSON(String jsonString) {
JSONTokener tok = new JSONTokener(jsonString);
while(tok.more()) {
try {
Object item = tok.nextValue();
if (item instanceof JSONObject) {
// JSON Object
analyzeJSON(item.toString());
} else if (item instanceof JSONArray) {
// JSON Array
JSONArray array = (JSONArray) item;
for (int i = 0; i < array.length(); i++) {
Object subItem = array.get(i);
if (subItem instanceof JSONObject) {
// JSON Object
analyzeJSON(item.toString());
} else if (subItem instanceof JSONArray) {
// JSON Array inside array
} else {
// Something
}
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
希望这可以帮助。