我正在尝试使用JSON-Simple使用以下代码读取JSON中的配置文件
File f = new File("config.json");
JSONParser parser = new JSONParser();
try {
int i;
StringBuilder out = new StringBuilder();
FileReader reader = new FileReader(f);
while ((i = reader.read()) != -1) {
out.append((char) i);
}
JSONArray array = (JSONArray) JSONValue.parse(out.toString());
} catch (Exception e) {
System.out.println(e.toString());
}
或
File f = new File("config.json");
JSONParser parser = new JSONParser();
try {
Object obj = parser.parse(new FileReader(f));
JSONObject jsonObject = (JSONObject) obj;
JSONArray array = (JSONArray) jsonObject.get("module");
Iterator<String> itreator = array.iterator();
while (itreator.hasNext()) {
System.out.println(itreator.next());
}
} catch (FileNotFoundException fnf) {
fnf.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
但两者都返回错误
org.json.simple.JSONObject cannot be cast to org.json.simple.JSONArray
但是在做的时候
File f = new File("config.json");
try {
System.out.println(JSONValue.parse(new FileReader(f)));
} catch (Exception e) {
System.out.println(e.toString());
}
它返回文件的内容。
配置文件可以在这里看到: http://pastebin.com/5xJTHSwj
答案 0 :(得分:0)
module
标记不是数组。 JSON数组以[
为开头
例如
"module" : [{prop : "One"},{prop : "Two"}]
请改用此代码
JSONObject moduleObject= (JSONObject ) jsonObject.get("module");