gson java对象与json转换

 

一. 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. }  

 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. }  

 三.其他可参考gson教程和官方帮助文档

你可能感兴趣的:(java,json,gson)