Java - 如何读取json文件并将值放入数组中

时间:2017-12-19 15:38:16

标签: java json netbeans

我有一个名为city.list.json的JSON文件,其中包含以下对象:

{
"id": 707860,
"name": "Hurzuf",
"country": "UA",
"coord": {
  "lon": 34.283333,
  "lat": 44.549999
}}

如何将名称的值放入数组?

这是我尝试过的代码:

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);
    }

但它给我的数据错误说&#34;类数据中的构造函数数据不能应用于给定的类型&#34;

1 个答案:

答案 0 :(得分:-1)

您可以使用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);