如何在java中读取json文件?

LC1*_*382 0 java json

我正在尝试从文件中读取这个json数据

[{"name":"Luke","score":50},{"name":"Ryan","score":70}]
Run Code Online (Sandbox Code Playgroud)

码:

JsonParser parser = new JsonParser();

try{

Object obj = parser.parse(new FileReader("C:/Users/user/Documents/HighscoresJSON.json"));
JSONObject jsonObject = (JSONObject) obj;

String usersName = (String) jsonObject.get("name");
System.out.println("Name of user: " + usersName);

int usersScore = (int) jsonObject.get("score");
System.out.println("Score: " + usersScore);
Run Code Online (Sandbox Code Playgroud)

这给了我错误:

com.google.gson.JsonArray cannot be cast to org.json.JSONObject

Sea*_*ght 5

有几个问题:

  1. 您的JSON显然是一个数组([并将其]包装出来)并且您正在尝试将其视为JSON对象.
  2. 您正在混合两个不同的JSON库 - Gson和org.json库.

坚持一个图书馆(在这种情况下是Gson):

Object obj = parser.parse(new FileReader("something.json"));
JsonArray jsonArray = (JsonArray) obj;

for (JsonElement element : jsonArray) {
    JsonObject jsonObject = element.getAsJsonObject();

    String usersName = jsonObject.get("name").getAsString();
    System.out.println("Name of user: " + usersName);

    int usersScore = jsonObject.get("score").getAsInt();
    System.out.println("Score: " + usersScore);
}
Run Code Online (Sandbox Code Playgroud)