Java从JSON文件解析JSON数组

Zee*_*Zee 0 java json gson json-simple

我已经很长时间没有编程了,但我喜欢它并试图回到正轨。因此,请原谅这里问题/疑问的性质。

在我看来,我需要的非常简单,但我主要是在使用 gson 和 json-simple 来读取我的 json 文件(一次一个)并能够检索值方面遇到困难。

我在这里看到了很多方法,但正如我所说,已经有一段时间了,我在职业生涯中没有做过很多 Java 工作。因此需要一些关于最佳方法的指导/解释。

JSON:

[{ "car": "Toyota", "colour": "red", "qty": "1","date_manufactured":"12972632260006" }, { "car": "Hyundai", "colour": "red", "qty": "2","date_manufactured":"1360421626000" }, { "car": "Kia", "colour": "blue", "qty": "2", "date_manufactured":"1265727226000"}, ]
Run Code Online (Sandbox Code Playgroud)

任何帮助我走上正轨的帮助都是值得赞赏的!

Cli*_*gts 5

  1. 创建一个 POJO 类来表示您的 JSON 数据:

    public class CarInfo {  
      String car;
      String colour;
      String qty;
      String date_manufactured; 
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用GSON解析JSON字符串数组

    String carInfoJson = "[{ \"car\": \"Toyota\", \"colour\": \"red\",\"qty\": \"1\",\"date_manufactured\":\"12972632260006\" }, { \"car\":\"Hyundai\", \"colour\":\"red\",\"qty\":\"2\",\"date_manufactured\":\"1360421626000\" }]";
    Gson gson = new Gson();  
    CarInfo[] carInfoArray = gson.fromJson(carInfoJson, CarInfo[].class);  
    
    Run Code Online (Sandbox Code Playgroud)
  3. 使用 GSON 从文件中解析 JSON 字符串数组

    String carInfoJson= new String(Files.readAllBytes(Paths.get("filename.txt")));
    Gson gson = new Gson();  
    CarInfo[] carInfoArray = gson.fromJson(carInfoJson, CarInfo[].class);
    
    Run Code Online (Sandbox Code Playgroud)
  4. 使用 GSON 使用 BufferedReader 从文件中解析 JSON 字符串数组

    BufferedReader reader = null;
    try {
      reader = new BufferedReader(new FileReader(file));
      Gson gson = new Gson(); 
      CarInfo[] carInfoArray = gson.fromJson(reader, CarInfo[].class);
    } catch (FileNotFoundException ex) {
      ...
    } finally {
      ...
    }
    
    Run Code Online (Sandbox Code Playgroud)
  5. 使用 GSON 在流模式下使用 JsonReader 从文件中解析 JSON 字符串数组

    try {
      InputStream stream = new FileInputStream("c:\\filename.txt");
      JsonReader reader = new JsonReader(new InputStreamReader(stream, "UTF-8"));
      Gson gson = new Gson();
    
      // Read file in stream mode
      reader.beginArray();
      while (reader.hasNext()) {
        CarInfo carInfo = gson.fromJson(reader, CarInfo.class);
      }
      reader.endArray();
      reader.close();
    } catch (UnsupportedEncodingException ex) {
      ...
    } catch (IOException ex) {
      ...
    }
    
    Run Code Online (Sandbox Code Playgroud)