Java對象和集合與Json字串之間的互相轉換,java對象json字串
總結一下利用Json相關jar包實現Java對象和集合與Json字串之間的互相轉換:
1、建立的User類:
package com.ghj.packageofdomain;public class User {private int id;private String name;private String gender;public User() {}public User(int id, String name, String gender) {this.id = id;this.name = name;this.gender = gender;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}@Overridepublic String toString() {return "id=" + id + ",name=" + name + ",gender=" + gender;}} 2、Java對象和集合與Json字串之間的互相轉換:
i、Java對象與Json字串之間的互相轉換:
package com.ghj.packageoftest;import net.sf.json.JSONObject;import com.ghj.packageofdomain.User;public class Test{public static void main(String[] args) {System.out.println(objectToJsonString());jsonStringToObject(objectToJsonString());}/** * 將Java對象轉換為Json字串 * * @author 高煥傑 */static String objectToJsonString(){JSONObject jsonObject = JSONObject.fromObject(new User(1, "張三", "男")); return jsonObject.toString();}/** * 將Json字串轉換為Java對象 * * @author 高煥傑 */static void jsonStringToObject(String jsonString){JSONObject jsonObject = JSONObject.fromObject(jsonString);User user = (User)JSONObject.toBean(jsonObject, User.class);System.out.println(user);}} ii、Java集合與Json字串之間的互相轉換:
package com.ghj.packageoftest;import java.util.ArrayList;import java.util.List;import net.sf.json.JSONArray;import com.ghj.packageofdomain.User;public class Test{public static void main(String[] args) {System.out.println(collectionToJsonString());jsonStringToCollection(collectionToJsonString());}/** * 將Java集合轉換為Json字串 * * @author 高煥傑 */static String collectionToJsonString(){List<User> userList = new ArrayList<User>();userList.add(new User(1, "張三", "男"));userList.add(new User(2, "李四", "女"));userList.add(new User(3, "王五", "男"));JSONArray jsonArray = JSONArray.fromObject(userList); return jsonArray.toString();}/** * 將Json字串轉換為Java集合 * * @author 高煥傑 */static void jsonStringToCollection(String jsonString){JSONArray jsonArray = JSONArray.fromObject(jsonString);@SuppressWarnings("unchecked")List<User> userList = (List<User>)JSONArray.toCollection(jsonArray, User.class);for (User user : userList) {System.err.println(user);}}} 注意:
1、上面User類不僅有有參建構函式還有無參建構函式,有人可能會問為什麼要有無參的建構函式呢?呵呵呵,為了方面構造User執行個體,添加了有參數的建構函式,可是正因為有了這個建構函式才必須要添加無參建構函式,否則會出現下面異常:
如果不嫌構造User執行個體繁雜完全可以去掉這兩個建構函式的——其實這種情況下無參建構函式還是存在的,呵呵呵,總之一句話要實現Json字串轉化為Java執行個體或集合則相關類中要有無參的建構函式。
2、 Java對象和集合與Json之間的互相轉換需要藉助相應的jar包實現,這些jar包可以在Demo中擷取到
【0分下載Demo】
java json-lib包 怎將json字串轉換為包含複雜類型集合的Bean對象
你需要在JSONObject.toBean的時候把list的元素類型當成參數傳進去。
代碼如下,你肯定看得懂
Map<String, Class> classMap = new HashMap<String, Class>();
classMap.put("list", B.class);
A j = (A) JSONObject.toBean(json, A.class,classMap);
java中,json格式的字串轉換成對象
要使程式可以運行必須引入JSON-lib包,JSON-lib包同時依賴於以下的JAR包:
1.commons-lang.jar
2.commons-beanutils.jar
3.commons-collections.jar
4.commons-logging.jar
5.ezmorph.jar
6.json-lib-2.2.2-jdk15.jar