我認為這會很簡單,但它一直與InvocationTargetExceptionat崩潰reader.hasNext()。
File jsonInputFile = new File(root "/dicts/phrases.json");
JsonReader reader = new JsonReader(new FileReader(jsonInputFile));
while (reader.hasNext()) {
System.out.println(reader.nextName());
}
這究竟有什么問題?盡管 json 檔案只有一行,但 while 回圈會一直持續下去。
uj5u.com熱心網友回復:
由于它似乎正在讀取 JSON 并且遇到 BEGIN_TOKEN 而不是 JsonToken.NAME 型別
你可以試試下面的:
while (jsonReader.hasNext())
{
JsonToken nextToken = jsonReader.peek();
if (JsonToken.BEGIN_OBJECT.equals(nextToken)) {
jsonReader.beginObject();
} else if (JsonToken.NAME.equals(nextToken)) {
String name = jsonReader.nextName();
System.out.println("Token KEY >>>> " name);
} else if (JsonToken.STRING.equals(nextToken)) {
String value = jsonReader.nextString();
System.out.println("Token Value >>>> " value);
} else if (JsonToken.NUMBER.equals(nextToken)) {
long value = jsonReader.nextLong();
System.out.println("Token Value >>>> " value);
} else if (JsonToken.NULL.equals(nextToken)) {
jsonReader.nextNull();
System.out.println("Token Value >>>> null");
} else if (JsonToken.END_OBJECT.equals(nextToken)) {
jsonReader.endObject();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/334131.html
標籤:爪哇 json jsonreader
