Json——使用Json jar包实现Json字符串与Java对象或集合之间的互相转换
总结一下利用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; } @Override public 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】