在JAVA中读取JSON数组

我有这样的回复:

[ { "key": { "kind": "UserRecord", "id": 0, "name": "1" }, "firstName": "1", "lastName": "1", "homeLat": 0.0, "homeLon": 0.0, "workLat": 0.0, "workLon": 0.0, "currentLat": 10.0, "currentLon": 10.82, "timestamp": 1335735046606, "score": 0, "isStarred": false, "distance": 0.0 }, { "key": { "kind": "UserRecord", "id": 0, "name": "32423542324234324" }, "firstName": "Simone", "lastName": "Boscolo Berto", "homeLat": 0.0, "homeLon": 0.0, "workLat": 0.0, "workLon": 0.0, "currentLat": 55.786444, "currentLon": 12.515867, "timestamp": 1335884083696, "score": 0, "isStarred": false, "distance": 0.0 } ] 

以及从每个JSONObject给我我的对象的方法

 private User getUserFromJson(JSONObject jsonUser) 

如何迭代JSONObjects列表? 我应该使用JSONArrayobject吗?

对于Gson或jackson来说这很容易

Gson的例子

 Gson gson = new Gson(); User[] users = gson.fromJson(, User[].class); 

jackson的例子

 ObjectMapper mapper = new ObjectMapper(); Collection users = mapper.readValue(, `new TypeReference>() {}); 

样品

 package com.test; import com.google.gson.Gson; public class GSonExample { public static void main(String[] args) { String json = "{\"name\":\"Duke\",\"address\":\"Menlo Park\",\"dateOfBirth\":\"Feb 1, 2000 12:00:00 AM\"}"; Gson gson = new Gson(); User student = gson.fromJson(json, User.class); System.out.println("student.getName() = " + student.getName()); System.out.println("student.getAddress() = " + student.getAddress()); System.out.println("student.getDateOfBirth() = " + student.getDateOfBirth()); } } public class User { private String name; private String address; private String dateOfBirth; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getDateOfBirth() { return dateOfBirth; } public void setDateOfBirth(String dateOfBirth) { this.dateOfBirth = dateOfBirth; } } 

类路径

        

像这样的东西:

 final String incomingJSON ; final JSONArray objArray = new JSONArray(incomingJSON); for(int i = 0; i < objArray.length(); i++) { final JSONObject obj = objArray.getJSONObject(i); final User user = getUserFromJson(obj); } 

你在使用Gson api吗? 有了它,您可以从JsonArray对象获取迭代器。

 Iterator iterator() Returns an iterator to navigate the elemetns of the array.