当它可以是

时间:2018-01-18 15:06:45

标签: java json

JSON file

我有一个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。我该如何测试?

1 个答案:

答案 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 
}
相关问题