【发布时间】:2014-03-17 22:26:35
【问题描述】:
我有一个二维 JSON 数组对象,如下所示
{"enrollment_response":{"condition":"Good","extra":"Nothig","userid":"526398"}}
我想解析上面的Json数组对象来得到条件,extra,userid。所以我用了下面的代码
JSONParser parser = new JSONParser();
try {
Object obj = parser.parse(new FileReader("D:\\document(2).json"));
JSONObject jsonObject = (JSONObject) obj;
String name = (String) jsonObject.get("enrollment_response");
System.out.println("Condition:" + name);
String name1 = (String) jsonObject.get("extra");
System.out.println("extra: " + name1);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
它抛出一个错误
"Exception in thread "main" java.lang.ClassCastException:
org.json.simple.JSONObject cannot be cast to java.lang.String at
com.jsonparser.apps.JsonParsing1.main(JsonParsing1.java:22)"
请任何人帮助解决这个问题。
【问题讨论】:
-
你使用什么 json lib?
-
我认为错误信息很清楚。您希望通过将 object 转换为 string 得到什么结果(您确实意识到
enrollment_response的值是一个对象?)? -
你这里的根本不是一个数组。它是一个 Json 对象,其中嵌套了另一个 Json 对象。
-
我想获取condition、extra和userid的值
-
FYI
org.json.simple很可能是您可以选择的 worst JSON 解析库。请,请使用其他东西。 Jackson、Gson,甚至是旧的 json.org 库都好得多。