我已经很长时间没有编程了,但我喜欢它,并试图重新回到正轨。所以请原谅问题/问题的性质。
在我看来,我需要的是非常简单,但我主要是努力使用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"}, ]
非常感谢帮助我走上正轨!
答案 0 :(得分:2)
创建一个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) {
...
}
答案 1 :(得分:0)
我使用json-simple来解释如何执行此操作。你的json是一个JSONArray
(因为它以方括号开头和结尾),JSONObject
(带有列表的花括号),所以首先你要用{{1}提取数组然后你可以轻松地迭代它并从每个JSONParser
获取字段。
这是一个简单示例,它只是向您展示一种简单易懂的方式:
JSONObject
请注意,您可以使用Gson,它比json更简单,但有点棘手。