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

gson java对象与json转换

2014-03-11 16:43 423 查看
一. 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
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: