您的位置:首页 > 编程语言 > Java开发

gson java对象与json转换

2016-01-11 09:20 344 查看
一. 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代码  


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代码  


public class ComOpen {  

    private Org org;  

    private List<BizObject> biz;  

    public Org getOrg() {  

        return org;  

    }  

    public void setOrg(Org org) {  

        this.org = org;  

    }  

    public List<BizObject> getBiz() {  

        return biz;  

    }  

    public void setBiz(List<BizObject> biz) {  

        this.biz = biz;  

    }  

}  

  

public class Org {  

    private String orgId;  

    private String orgName;  

    public String getOrgId() {  

        return orgId;  

    }  

    public void setOrgId(String orgId) {  

        this.orgId = orgId;  

    }  

    public String getOrgName() {  

        return orgName;  

    }  

    public void setOrgName(String orgName) {  

        this.orgName = orgName;  

    }  

}  

  

public class BizObject {  

    private int appcode;  

    private String subscode;  

    public String getSubscode() {  

        return subscode;  

    }  

    public void setSubscode(String subscode) {  

        this.subscode = subscode;  

    }  

    public int getAppcode() {  

        return appcode;  

    }  

    public void setAppcode(int appcode) {  

        this.appcode = appcode;  

    }  

}  

  

/** 

 * 测试java对象和json转换 

 * 

 * @author yangliang 

 * @version 1.0 

 * @created 2011-10-11 下午03:14:04 

 * @history  

 * @see 

 */  

public class Test2 {  

    public static void main(String[] args) {  

        toJson();  

        toObject();  

    }  

    public static void toJson(){  

        ComOpen como = new ComOpen();  

        Org org = new Org();  

        org.setOrgId("orgId");  

        org.setOrgName("orgName");  

        como.setOrg(org);  

        List<BizObject> biz = new ArrayList<BizObject>();  

        BizObject bizObject = new BizObject();   

        bizObject.setAppcode(55);  

        bizObject.setSubscode("subscode0");  

        BizObject bizObject1 = new BizObject();   

        bizObject1.setAppcode(66);  

        bizObject1.setSubscode("subscode1");  

        biz.add(bizObject);  

        biz.add(bizObject1);  

        como.setBiz(biz);  

        Gson gson=new GsonBuilder().create();  

        String result = gson.toJson(como);  

        System.out.println(result);  

        //输出{"org":{"orgId":"orgId","orgName":"orgName"},"biz":接下行  

        //[{"appcode":55,"subscode":"subscode0"},{"appcode":66,"subscode":"subscode1"}]}  

    }  

      

    public static void toObject(){  

        String json = "{'org':{'orgId':'orgId','orgName':'orgName'},'biz':" +  

         "[{'appcode':55,'subscode':'subscode0'},{'appcode':66,'subscode':'subscode1'}]}";  

        Gson gson=new Gson();  

        ComOpen  m3 = gson.fromJson(json, ComOpen.class);  

        System.out.println(m3.getBiz().size());//2  

        System.out.println("orgId:"+m3.getOrg().getOrgId());//orgId:orgId  

        System.out.println("appcode:"+ m3.getBiz().get(0).getAppcode());//appcode:55  

    }  

}  

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

 

Google_开源项目_Gson教程.rar (267.2 KB)

gson-1.6.rar (202.5 KB)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  gson json