#java #json
#java #json
Вопрос:
Можно ли проверить, является ли JSONArray на самом деле логическим или целочисленным массивом. Я часами искал в Интернете, но ничего не могу найти. Спасибо.
Ответ №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");
}
}
Ответ №2:
Если вы используете JSONArray
from org.json
package, вы можете сделать 2 вещи.
1) вы можете использовать optBoolean
optInt
методы or, которые возвращают true, если значение является логическим или int соответственно, как говорится в документе here
2) вы можете получить значение JSONArray в Object и проверить его экземпляр по ключевому слову instanceOf, а затем использовать соответствующим образом.