一. 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教程和官方帮助文档
分享到:
相关推荐
在Android开发中,数据交换和存储经常涉及到JSON格式的数据。...只需简单几步,就可以将JSON转换为易于处理的Java对象,极大地提高了开发效率。在实际项目中,合理利用Gson能让你的代码更加简洁、高效。
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。 java对象或者list转换为json字符串
Gson作为Java对象和JSON转换的利器,通过其强大的功能和简洁的API,简化了开发者在JSON数据处理中的工作。无论是基本类型还是复杂对象,Gson都能轻松应对,同时提供了自定义转换的灵活性,使得在实际项目中更加...
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。...Json转换利器Gson之实例六-注册TypeAdapter及处理Enum类型 (http://blog.csdn.net/lk_blog/article/details/7685347)
1. **序列化与反序列化**:Gson库的主要任务是将Java对象转换成JSON字符串(序列化),以及将JSON字符串解析为对应的Java对象(反序列化)。例如,你可以通过`Gson().toJson()`方法将一个Java对象转换成JSON,同时...
Gson是Google提供的一个Java库,它能够将Java对象转换为JSON字符串,反之亦然。本文将深入探讨Gson库在对象与JSON之间的转换过程中所涉及的知识点。 ### 一、Gson简介 Gson库的核心功能是通过`Gson`类来实现Java...
Gson 2.3.1作为一款高效的JSON转换工具,其简洁的API和强大的功能使得在Java和Android项目中处理JSON数据变得简单。通过理解和熟练掌握Gson的用法,开发者可以更便捷地进行数据交换和存储,提升项目的开发效率。在...
要将Java对象转换为JSON字符串,首先需要创建一个Gson实例,然后调用`toJson()`方法。例如,我们有一个简单的User类: ```java public class User { private String name; private int age; // getters and ...
- JSON反序列化:将JSON字符串转换为Java对象,如使用Gson的`fromJson()`方法。 - JSON序列化:将Java对象转换为JSON字符串,如使用Jackson的`ObjectMapper.writeValueAsString()`方法。 3. **Java对象转换**: ...
- 在进行对象到JSON转换时,可能会遇到类型不匹配、空指针等问题,需要妥善处理异常,如使用try-catch语句包裹转换代码,并进行适当的错误反馈。 通过以上步骤,我们能够理解如何使用json-lib库将Java对象转换成...
1. **对象到JSON转换**: 要将Java对象转换为JSON字符串,你需要创建一个Gson实例,然后调用`toJson()`方法。例如,假设我们有一个简单的User类: ```java public class User { private String name; private ...
总结来说,Gson库为Java开发者提供了强大的工具,使得JSON与Java对象之间的转换变得轻松便捷。无论是在简单的数据类型还是复杂的对象结构中,Gson都能提供高效且灵活的解决方案。在实际项目中,配合`gson_tools`这样...
总结来说,GSON库通过toJson()和fromJson()方法为开发者提供了便捷的JSON数据与Java对象之间的转换功能,无论数据结构多么复杂,只要正确地定义了Java实体类,都能轻松应对。在处理如上示例中的JSON数组时,GSON的...
Gson是Google提供的一个开源库,它允许我们在Java对象和JSON字符串之间进行无缝转换。本文将深入探讨如何使用Gson库进行这种转化操作。 首先,我们需要引入Gson库。如果你使用Maven,可以在pom.xml文件中添加以下...
在这个实例中,"JsonConverterDemo"可能是演示如何使用这三个库进行JSON转换的示例代码。通常,这个Demo会包含创建Java对象,然后使用各个库将其转换为JSON字符串,接着再将JSON字符串反序列化回原对象的过程。这有...
在Java开发中,Gson库是Google提供的一款用于在Java对象和JSON数据之间进行映射的Java库。它使得我们能够方便地将Java对象转换为JSON格式的字符串,同时也能将JSON格式的数据转换回对应的Java对象。这个过程被称为...
Gson库的强大之处在于它可以将Java对象转换为JSON字符串,反之亦然,使得JSON数据和Java对象之间的转换变得简单易行。 首先,我们了解下JSON(JavaScript Object Notation)的基本概念。JSON是一种轻量级的数据交换...
总结来说,Gson库是Java中实现List到JSON转换的重要工具,通过其提供的`toJson()`和`fromJson()`方法,我们可以方便地在Java对象和JSON格式之间进行数据转换。在处理与前端交互时,理解并熟练运用Gson能显著提高开发...
Gson是Google提供的一款强大的库,它能够方便地实现Java对象与JSON字符串之间的转换。本篇将详细介绍如何使用Gson处理Java中的嵌套对象和JSON字符串。 首先,理解JSON的基本结构。JSON是一种基于键值对的数据结构,...