public class User { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } 普通JavaBean(以User爲例)轉成json格式 1.轉成JSONArray類型 User user = new User(); user.setUsername("cxl"); user.setPassword("1234"); JSONArray json = JSONArray.fromObject(user); System.out.println(json);//[{"password":"1234","username":"cxl"}] response.getWriter().print(json.toString()); 在js文件取數據 $.getJSON("http://localhost:8080/jQueryDemo/servlet/UserServlet",null,function(data) { alert(data[0].username); alert(data[0].password); }); 2.轉成JSONObject類型 JSONObject jsonObj = JSONObject.fromObject(user); System.out.println(jsonObj);//{"password":"1234","username":"cxl"} response.getWriter().print(jsonObj); 在js文件取數據 alert(data.username); alert(data.password); List轉成json格式 List<User> users = new ArrayList<User>(); User user = new User(); user.setUsername("cxl"); user.setPassword("1234"); User u = new User(); u.setUsername("lhl"); u.setPassword("1234"); users.add(user); users.add(u); 1.轉成JSONArray類型 JSONArray json = JSONArray.fromObject(users); System.out.println(json.toString()); //[{"password":"1234","username":"cxl"},{"password":"1234","username":"lhl"}] response.getWriter().print(json.toString()); js中取數據:alert(alert(data[0].username)); 2.轉成JSONObject類型 不可直接使用JSONObject jsonObj = JSONObject.fromObject(users); 可經過下列方式 JSONObject jsonObj = new JSONObject(); jsonObj.put("users", users); jsonObj.put("u", u); System.out.println(jsonObj); {"users":[{"password":"1234","username":"cxl"},{"password":"1234","username":"lhl"}], "u":{"password":"1234","username":"lhl"}} response.getWriter().print(jsonObj); js中取數據:alert(data.users[0].username); alert(data.u[0].username); Map轉成json格式 Map<String,Object> map = new HashMap<String,Object>(); map.put("users", users); map.put("u", u); 1.轉成JSONArray類型 JSONArray json = JSONArray.fromObject(map); System.out.println(json.toString());// [{"users":[{"password":"1234","username":"cxl"},{"password":"1234","username":"lhl"}],"u":{"password":"1234","username":"lhl"}}] response.getWriter().print(json.toString); js中取數據:alert(data[0].users[0].username); 2.轉成JSONObject類型 JSONObject json = JSONObject.fromObject(map); System.out.println(json);// {"user":[{"password":"1234","username":"cxl"},{"password":"1234","username":"lhl"}],"u":{"password":"1234","username":"lhl"}} response.getWriter().print(json); js中取數據:alert(data.user[0].username); package digu.pendant.util; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class PandantTools { public static List<Map<String, Object>> parseJSON2List(String jsonStr){ JSONArray jsonArr = JSONArray.fromObject(jsonStr); List<Map<String, Object>> list = new ArrayList<Map<String,Object>>(); Iterator<JSONObject> it = jsonArr.iterator(); while(it.hasNext()){ JSONObject json2 = it.next(); list.add(parseJSON2Map(json2.toString())); } return list; } public static Map<String, Object> parseJSON2Map(String jsonStr){ Map<String, Object> map = new HashMap<String, Object>(); //最外層解析 JSONObject json = JSONObject.fromObject(jsonStr); for(Object k : json.keySet()){ Object v = json.get(k); //若是內層仍是數組的話,繼續解析 if(v instanceof JSONArray){ List<Map<String, Object>> list = new ArrayList<Map<String,Object>>(); Iterator<JSONObject> it = ((JSONArray)v).iterator(); while(it.hasNext()){ JSONObject json2 = it.next(); list.add(parseJSON2Map(json2.toString())); } map.put(k.toString(), list); } else { map.put(k.toString(), v); } } return map; } public static List<Map<String, Object>> getListByUrl(String url){ try { //經過HTTP獲取JSON數據 InputStream in = new URL(url).openStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); StringBuilder sb = new StringBuilder(); String line; while((line=reader.readLine())!=null){ sb.append(line); } return parseJSON2List(sb.toString()); } catch (Exception e) { e.printStackTrace(); } return null; } public static Map<String, Object> getMapByUrl(String url){ try { //經過HTTP獲取JSON數據 InputStream in = new URL(url).openStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); StringBuilder sb = new StringBuilder(); String line; while((line=reader.readLine())!=null){ sb.append(line); } return parseJSON2Map(sb.toString()); } catch (Exception e) { e.printStackTrace(); } return null; } //test public static void main(String[] args) { String url = "http://..."; List<Map<String,Object>> list = getListByUrl(url); System.out.println(list); } }