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文件并将值放入数组中的主要内容,如果未能解决你的问题,请参考以下文章

PHP、XML 获取记录节点和值并将它们放入 JSON 数组? [复制]

如何按整数读取文件整数并将它们放入二维数组?

将字节数组放入 JSON,反之亦然

逐行读取文本文件并将这些行放入Java中的列表中

java读取文件中多个数据,放入不同数组

如何在java中读取json格式的数组值