我有一个名为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;
答案 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);