Java - 如何读取json文件并将值放入数组中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java - 如何读取json文件并将值放入数组中相关的知识,希望对你有一定的参考价值。
我有一个名为city.list.json
的JSON文件,包含以下对象:
{
"id": 707860,
"name": "Hurzuf",
"country": "UA",
"coord": {
"lon": 34.283333,
"lat": 44.549999
}}
如何将name的值放入数组?
这是我试过的代码:
String name = null;
JSONArray jsonArr = new JSONArray("[JSON String]");
ArrayList<Data> dataList = new ArrayList<>();
for (int i = 0; i < jsonArr.length(); i++) {
JSONObject jsonObj = jsonArr.getJSONObject(i);
Data data = new Data();
data.name = jsonObj.getString("name");
dataList.add(data);
}
但它给我的数据错误说“类数据中的构造函数数据不能应用于给定的类型”
答案
您可以使用GSON库来完成此任务:
String input = yourSampleJson;
Gson gson = new Gson();
Map<String,Object> inputPojo = new HashMap<>();
inputPojo = gson.fromJson(input, inputPojo.class); // This map now contains the representation of your JSON.
我通常更喜欢有一个代表你的JSON结构的POJO类:
Class DanielePojo {
Integer id;
String name;
String country;
Coord coord; // This is another class similar to this POJO which is represented as Object in your JSON
// Then your getters and setters
}
然后,您可以直接将JSON转换为Pojo对象,而无需将MAP作为中间对象。
DanielePojo pojo = new GSON.fromJSON(input,DanielePojo.class);
以上是关于Java - 如何读取json文件并将值放入数组中的主要内容,如果未能解决你的问题,请参考以下文章