josn 对象互转超简单

 

一. Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。

Gson里最重要的对象有2个Gson 和 GsonBuilder。

Gson有2个最基本的方法

1) toJson() – 转换java 对象到JSON

2) fromJson() – 转换JSON到java对象

二. 几个简单的例子。

 exp1(一个简单对象object和json之间的转换):

Java代码 复制代码 收藏代码
  1. public class MsgInfo2 {   
  2.     private String message;    
  3.     private String flag;   
  4.     public String getMessage() {   
  5.         return message;   
  6.     }   
  7.     public void setMessage(String message) {   
  8.         this.message = message;   
  9.     }   
  10.     public String getFlag() {   
  11.         return flag;   
  12.     }   
  13.     public void setFlag(String flag) {   
  14.         this.flag = flag;   
  15.     }    
  16.        
  17. }   
  18.   
  19. public class Test1 {   
  20.   
  21.     public static void main(String[] args) {   
  22.         MsgInfo2 m2 = new MsgInfo2();   
  23.         m2.setFlag("00");   
  24.         m2.setMessage("message");   
  25.         tojson(m2);   
  26.            
  27.         String json = "{'message':'message1','flag':'00'}";   
  28.         toObject(json);   
  29.     }   
  30.   
  31.     public static void tojson(MsgInfo2 m) {   
  32.         // 将对象编译成json   
  33.         Gson gson = new Gson();   
  34.         String result = gson.toJson(m);   
  35.         System.out.println(result);   
  36.         // 输出:{"message":"message","flag":"00"}   
  37.     }   
  38.   
  39.     public static void toObject(String m) {   
  40.         // 将json编译成对象   
  41.         Gson gson = new Gson();   
  42.         MsgInfo2 msg = gson.fromJson(m, MsgInfo2.class);   
  43.         System.out.println(msg.getFlag());//输出:00   
  44.         System.out.println(msg.getMessage());//输出:message1   
  45.     }   
  46. }  
public class MsgInfo2 {
	private String message; 
	private String flag;
	public String getMessage() {
		return message;
	}
	public void setMessage(String message) {
		this.message = message;
	}
	public String getFlag() {
		return flag;
	}
	public void setFlag(String flag) {
		this.flag = flag;
	} 
	
}

public class Test1 {

	public static void main(String[] args) {
		MsgInfo2 m2 = new MsgInfo2();
		m2.setFlag("00");
		m2.setMessage("message");
		tojson(m2);
		
		String json = "{'message':'message1','flag':'00'}";
		toObject(json);
	}

	public static void tojson(MsgInfo2 m) {
		// 将对象编译成json
		Gson gson = new Gson();
		String result = gson.toJson(m);
		System.out.println(result);
		// 输出:{"message":"message","flag":"00"}
	}

	public static void toObject(String m) {
		// 将json编译成对象
		Gson gson = new Gson();
		MsgInfo2 msg = gson.fromJson(m, MsgInfo2.class);
		System.out.println(msg.getFlag());//输出:00
		System.out.println(msg.getMessage());//输出:message1
	}
}

 exp2(一个复杂对象object和json之间的转换):

json的结构如下:

{
      "org":     {
          "orgId": "orgId",
          "orgName": "orgName"
      },
      "biz":     [
                  {
              "appcode": 55,

              "subscode": "subscode0"
          },
                  {
              "appcode": 66,
              "subscode": "subscode1"
          }
      ]
  }

Java代码 复制代码 收藏代码
  1. public class ComOpen {   
  2.     private Org org;   
  3.     private List<BizObject> biz;   
  4.     public Org getOrg() {   
  5.         return org;   
  6.     }   
  7.     public void setOrg(Org org) {   
  8.         this.org = org;   
  9.     }   
  10.     public List<BizObject> getBiz() {   
  11.         return biz;   
  12.     }   
  13.     public void setBiz(List<BizObject> biz) {   
  14.         this.biz = biz;   
  15.     }   
  16. }   
  17.   
  18. public class Org {   
  19.     private String orgId;   
  20.     private String orgName;   
  21.     public String getOrgId() {   
  22.         return orgId;   
  23.     }   
  24.     public void setOrgId(String orgId) {   
  25.         this.orgId = orgId;   
  26.     }   
  27.     public String getOrgName() {   
  28.         return orgName;   
  29.     }   
  30.     public void setOrgName(String orgName) {   
  31.         this.orgName = orgName;   
  32.     }   
  33. }   
  34.   
  35. public class BizObject {   
  36.     private int appcode;   
  37.     private String subscode;   
  38.     public String getSubscode() {   
  39.         return subscode;   
  40.     }   
  41.     public void setSubscode(String subscode) {   
  42.         this.subscode = subscode;   
  43.     }   
  44.     public int getAppcode() {   
  45.         return appcode;   
  46.     }   
  47.     public void setAppcode(int appcode) {   
  48.         this.appcode = appcode;   
  49.     }   
  50. }   
  51.   
  52. /**  
  53.  * 测试java对象和json转换  
  54.  *  
  55.  * @author yangliang  
  56.  * @version 1.0  
  57.  * @created 2011-10-11 下午03:14:04  
  58.  * @history   
  59.  * @see  
  60.  */  
  61. public class Test2 {   
  62.     public static void main(String[] args) {   
  63.         toJson();   
  64.         toObject();   
  65.     }   
  66.     public static void toJson(){   
  67.         ComOpen como = new ComOpen();   
  68.         Org org = new Org();   
  69.         org.setOrgId("orgId");   
  70.         org.setOrgName("orgName");   
  71.         como.setOrg(org);   
  72.         List<BizObject> biz = new ArrayList<BizObject>();   
  73.         BizObject bizObject = new BizObject();    
  74.         bizObject.setAppcode(55);   
  75.         bizObject.setSubscode("subscode0");   
  76.         BizObject bizObject1 = new BizObject();    
  77.         bizObject1.setAppcode(66);   
  78.         bizObject1.setSubscode("subscode1");   
  79.         biz.add(bizObject);   
  80.         biz.add(bizObject1);   
  81.         como.setBiz(biz);   
  82.         Gson gson=new GsonBuilder().create();   
  83.         String result = gson.toJson(como);   
  84.         System.out.println(result);   
  85.         //输出{"org":{"orgId":"orgId","orgName":"orgName"},"biz":接下行   
  86.         //[{"appcode":55,"subscode":"subscode0"},{"appcode":66,"subscode":"subscode1"}]}   
  87.     }   
  88.        
  89.     public static void toObject(){   
  90.         String json = "{'org':{'orgId':'orgId','orgName':'orgName'},'biz':" +   
  91.          "[{'appcode':55,'subscode':'subscode0'},{'appcode':66,'subscode':'subscode1'}]}";   
  92.         Gson gson=new Gson();   
  93.         ComOpen  m3 = gson.fromJson(json, ComOpen.class);   
  94.         System.out.println(m3.getBiz().size());//2   
  95.         System.out.println("orgId:"+m3.getOrg().getOrgId());//orgId:orgId   
  96.         System.out.println("appcode:"+ m3.getBiz().get(0).getAppcode());//appcode:55   
  97.     }   
  98. }  
posted @ 2012-07-17 15:05  淡泊名利  阅读(1374)  评论(0)    收藏  举报