JSON

gson java对象与json转换(实例代码说明及教程)

字号+ 作者:H5之家 来源:H5之家 2017-12-21 11:00 我要评论( )

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

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

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

Gson有2个最基本的方法

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

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

二. 几个简单的例子。

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

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"
}
]
}

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教程和官方帮助文档

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • google Gson学习笔记及与json

    google Gson学习笔记及与json

    2017-10-02 16:05

  • 关于JSONObject与GSON解析JSON数据详解

    关于JSONObject与GSON解析JSON数据详解

    2017-10-02 10:02

  • 简单对象转化和带泛型的List转化

    简单对象转化和带泛型的List转化

    2017-08-09 14:00

  • Gson和Fastjson的使用

    Gson和Fastjson的使用

    2017-08-03 10:02

网友点评