是否可以检查JSONArray是否实际上是布尔值或整数数组。我已经通过互联网搜索了几个小时,但我找不到任何东西。感谢。
答案 0 :(得分:1)
您只需在第一个元素上使用instanceof
:
JSONObject o = new JSONObject("{ \"a1\": [ false, true, false, true ], \"a2\": [1,2,3,4] }");
JSONArray a1 = o.getJSONArray("a1");
JSONArray a2 = o.getJSONArray("a2");
if (a1.length() > 0) {
if (a1.get(0) instanceof Boolean) {
System.out.println("a1 is Boolean array");
} else if (a1.get(0) instanceof Integer) {
System.out.println("a1 is Integer array");
} else {
System.out.println("a1 is some other type");
}
}
if (a2.length() > 0) {
if (a2.get(0) instanceof Boolean) {
System.out.println("a2 is Boolean array");
} else if (a2.get(0) instanceof Integer) {
System.out.println("a2 is Integer array");
} else {
System.out.println("a2 is some other type");
}
}
答案 1 :(得分:0)
如果您使用JSONArray
套餐中的org.json
,那么您可以做两件事
1)您可以使用optBoolean
或optInt
方法,如果值分别为boolean或int,则返回true,如文档所述here
2)您可以在Object中获取JSONArray值并通过instanceOf关键字检查其实例,然后使用相应的。