[英]Java parse JSON array from JSON file
我已經很長時間沒有編程了,但是我喜歡它並試圖回到正軌。 因此,請在這里原諒問題的性質。
我認為我需要的非常簡單,但是我一直在努力使用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"}, ]
任何幫助我走上正軌的幫助都將受到贊賞!
創建一個POJO類來表示您的JSON數據:
public class CarInfo { String car; String colour; String qty; String date_manufactured; }
使用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);
使用GSON解析文件中的JSON字符串數組
String carInfoJson= new String(Files.readAllBytes(Paths.get("filename.txt"))); Gson gson = new Gson(); CarInfo[] carInfoArray = gson.fromJson(carInfoJson, CarInfo[].class);
使用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 { ... }
使用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) { ... }
我正在使用json-simple來說明如何執行此操作。 您的json是一個JSONArray
(因為它以方括號開頭和結尾),內部帶有JSONObject
(帶有成對列表的花括號),因此首先您必須使用JSONParser
提取數組,然后可以輕松地對其進行迭代並從每個數組中獲取字段JSONObject
。 這是一個簡單的示例,它只是向您顯示了一種簡單易懂的方式:
String json = "[{ \"car\": \"Toyota\", \"colour\": \"red\", \"qty\": \"1\",\"date_manufactured\":\"12972632260006\" }, { \"car\": \"Hyundai\", \"colour\": \"red\", \"qty\": \"2\",\"date_manufactured\":\"1360421626000\" }]";
JSONParser parser = new JSONParser();
try {
/* It's a JSONArray first. */
JSONArray tmpArr = (JSONArray)parser.parse(json);
for(Object obj : tmpArr){
/* Extract each JSONObject */
JSONObject tmpObj = (JSONObject) obj;
System.out.println(tmpObj.get("car"));
System.out.println(tmpObj.get("colour"));
System.out.println(tmpObj.get("qty"));
System.out.println(tmpObj.get("date_manufactured"));
}
} catch (ParseException e) {
e.printStackTrace();
}
請注意,您可以使用Gson,它比json-simple更為完整,但有點棘手。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.