检查JSONArray是否实际上是布尔数组的整数

时间:2014-06-24 13:32:04

标签: java json

是否可以检查JSONArray是否实际上是布尔值或整数数组。我已经通过互联网搜索了几个小时,但我找不到任何东西。感谢。

2 个答案:

答案 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)您可以使用optBooleanoptInt方法,如果值分别为boolean或int,则返回true,如文档所述here
2)您可以在Object中获取JSONArray值并通过instanceOf关键字检查其实例,然后使用相应的。