一. 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教程和官方帮助文档
分享到:
相关推荐
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。 java对象或者list转换为json字符串
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。...Json转换利器Gson之实例六-注册TypeAdapter及处理Enum类型 (http://blog.csdn.net/lk_blog/article/details/7685347)
主要介绍了使用GSON库转换Java对象为JSON对象的进阶实例详解,包括注册TypeAdapter及处理Enum类型等实际运用中可能遇到的一些复杂问题,需要的朋友可以参考下
GSON是Google开发并开源的一个Java的JSON转换库,这里我们将来讲解GSON实现Java对象的JSON序列化与反序列化的实例教程,需要的朋友可以参考下
主要介绍了java对象与json对象之间互相转换实现方法,结合实例形式分析了java对象与json对象相互转换实现步骤与相关操作技巧,需要的朋友可以参考下
主要介绍了Java实现操作JSON的便捷工具类,基于重写Google的Gson实现,涉及java针对json数据的各种常见转换操作实现技巧,需要的朋友可以参考下
主要介绍了Java实现Json字符串与Object对象相互转换的方式,结合实例形式总结分析了java基于Json-Lib、Org.Json、Jackson、Gson、FastJson五种方式转换json类型相关操作技巧,需要的朋友可以参考下
将 Java 对象序列化为 Json 并将 Json 反序列化为 Java 对象的实用程序为什么是另一个框架? 我喜欢其他 json 框架,flexjson 和 gson。 但是,有一些功能我无法在一个框架中全部找到。 因此创建了 Rjson。 这些...
有时候我们有这种需求就是把一个JSON字符串转换为一个具体的Python类的实例,比如你接收到这样一个JSON字符串如下: {Name: Tom, Sex: Male, BloodType: A, Hobbies: [篮球, 足球]} 我需要把这个转换为具体的一个...
在J2EE的开发中,这是很常用的技术,比如一个java class与xml之间的序列化与反序列化,我们可以通过 xstream来实现,如果是与json之间的转换,我们可以通过 gson.jar或者jsonlib.jar 来实现。方法很多,也是常见的...
简单的网络包装器一个 okHttp 包装器,它允许处理 Web 请求并将其转换为 Java 对象,而无需使用多行代码GSON Jackson-jr 图书馆。安装将它包含到您的项目中以构建它或用法得到1.实例化NetworkCallApi NetworkCallApi...
// okJson(GsonHelper.gson.toJson(list)); // okJson(list); // okJson(new FrontObj().success().setData(list)); // okJson(success(list)); // okJson(fail(list)); // okJson(fail...