我有一个JSON文件,其中value可以是对象或数组。我用Java编写了以下代码来读取文件。
public static void getInput() throws IOException, ParseException{
//creates a new JSON parser object.
JSONParser parser = new JSONParser();
File file = new File("my file");
Object ob = parser.parse(new FileReader(file));
JSONObject job = (JSONObject) ob;
JSONArray ja = (JSONArray) job.get("declaration-list");
for (Object o : ja){
JSONObject declared_variable = (JSONObject) o;
JSONObject value = (JSONObject) o;
String dv = (String) declared_variable.get("declared-variable");
long v = (long) value.get("value");
}
如果它是JSONArray,我想从value获取运算符和参数,但是有些实例的值是JSONObject。我该如何测试?
答案 0 :(得分:1)
虽然可能有更好的方法,但只需使用instanceof
就可以了。
Object o ...
if( o instanceof JSONObject) {
processJSONObject((JSONObject)o);
} else if (o instanceof JSONArray){
processJSONArray((JSONArray)o);
} else {
// Invalid object type handling
}