转自
1.介绍:Gson(又称Google Gson)是Google公司发布的一个开放源代码的Java库,主要用途为串行化Java对象为JSON字符串,或反串行化JSON字符串成Java对象。GSON核心jar包不到1M,非常精简,但提供的功能无疑是非常强大的,如果使用JDK自带的JSON解析API,使用起来相对比较繁琐一点,而且代码量较多。
package com.demoone;
import java.util.ArrayList;
import java.util.List;
import com.entity.Person;
import com.google.gson.Gson;
import com.google.gson.reflect.*;
/***
*
* 使用gson
* 进行序列化,反序列化的操作
* json
*
* **/
public class UseGson {
static Gson g=new Gson();
/**
*
* 由集合类型的实体类
* 转换成Json类型
*
* **/
public static void testToJSON(){
List<Person> list=new ArrayList<>();
for(int i=0;i<2;i++){
Person p=new Person(i, "散仙"+i, "北京市"+i, "54152541@qq.com", 500.0);
list.add(p);
}
String json=g.toJson(list);
System.out.println(json);
}
/**
* 由json转换为实体类
*
* */
public static void testOneBeanFromJSON(){
/**
* 转换一个Java Bean的时候
* 记住不能使用[],只有在使用集合的时候才可以使用
* 如上图贴的那个异常就是由此原因造成的,另外
* 格式要规范,中间不能出现空格字符
*
* **/
String jsonBean="[{\"id\":0,\"name\":\"散仙0\",\"address\":\"北京市0\",\"email\":\"54152541@qq.com\",\"money\":500.0}]";
Person p=g.fromJson(jsonBean, Person.class);
System.out.println(p);
}
/**
* 由json转换为实体类集合
*
* */
public static void testListBeanFromJSON(){
/**
* 转换一个集合 的实体Bean
* 注意前面加上[]方括号,代表一个数组
* **/
String jsonBeanList="[{\"id\":0,\"name\":\"散仙0\",\"address\":\"北京市0\",\"email\":\"54152541@qq.com\",\"money\":500.0},{\"id\":1,\"name\":\"散仙1\",\"address\":\"北京市1\",\"email\":\"54152541@qq.com\",\"money\":500.0}]";
List<Person> lists=g.fromJson(jsonBeanList,new TypeToken<List<Person>>(){}.getType());
System.out.println("反序列之后");
for(Person pp:lists){
System.out.println(pp);
}
}
public static void main(String[] args) {
testListBeanFromJSON();//测试集合反序列化
testOneBeanFromJSON();//测试单个实体类反序列化
//testToJSON();//测试序列化
}
}
testListBeanFromJSON() 方法:
反序列之后
编号:0 名字:散仙0 地址:北京市0 E-mail:54152541@qq.com 钱:500.0
编号:1 名字:散仙1 地址:北京市1 E-mail:54152541@qq.com 钱:500.0
testOneBeanFromJSON() 方法:
编号:0 名字:散仙0 地址:北京市0 E-mail:54152541@qq.com 钱:500.0
package com.entity;
/**
* 实体类
*
*
* **/
public class Person {
private int id;
private String name;
private String address;
private String email;
private double money;
@Override
public String toString() {
// TODO Auto-generated method stub
return "编号:"+id+" 名字:"+name+" 地址:"+address+" E-mail:"+email+" 钱:"+money;
}
public Person() {
// TODO Auto-generated constructor stub
}
public Person(int id, String name, String address, String email,
double money) {
super();
this.id = id;
this.name = name;
this.address = address;
this.email = email;
this.money = money;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
}
分享到:
相关推荐
这个“我的gson学习例子”显然是一份关于如何使用Gson进行JSON操作的学习资料。下面我们将详细探讨Gson库的使用方法和相关知识点。 首先,我们要理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式...
它允许开发者查看和学习Gson的内部实现,便于理解其工作原理,调试代码,甚至对库进行扩展或定制。源码中包含了所有的类、接口、方法和注释,可以帮助开发者更深入地理解和使用Gson。 除了这两个核心文件,压缩包中...
这篇“Android学习笔记--Gson笔记”将深入探讨如何利用Gson来处理JSON数据,提升Android应用的数据解析效率。 一、Gson简介 Gson库能够将Java对象转换成对应的JSON字符串,反之亦然,这使得在Android应用中存储、...
在实际开发中,可以将`gson-2.3.jar`添加到项目的类路径,使用`gson-2.3-javadoc.jar`作为参考,而`gson-2.3-sources.jar`则有助于深入学习和调试。这三部分共同构成了Gson库的完整学习和开发环境,方便开发者在处理...
通过查看源代码,开发者可以深入理解Gson的工作原理,学习其内部实现,甚至调试和优化代码。源码分析有助于提升个人技能,特别是对于解决使用过程中遇到的问题,或者想要扩展Gson功能时,源码能提供直接的参考。 ...
而`gson-2.2.4-sources.jar`则包含源代码,对于开发者来说,查看源码可以帮助理解库内部的工作原理,进行调试或学习。 总的来说,Gson是Java世界里处理JSON数据的强大工具,它的易用性和灵活性使其成为许多开发者的...
通过查看源码,可以深入了解Gson内部的工作原理,学习其设计模式和最佳实践,也可以方便地进行调试或自定义扩展。例如,你可以看到`JsonParser`如何解析JSON字符串,或者`TypeAdapter`如何实现自定义类型转换。 3. ...
gson API参考文档,学习gson的可以下载使用,123456789
3. `gson-2.8.6-sources.jar`:这个文件包含了Gson库的源代码,对于开发者来说,这是一个学习和调试的宝贵资源。通过查看源代码,开发者可以深入理解Gson的工作原理,遇到问题时也能更容易地定位和解决问题。 在...
Gson的源码通常包含许多设计模式和最佳实践,对于学习Java编程和JSON处理有很高的价值。 此外,提供的说明文档可以帮助你更好地掌握Gson的使用方法,包括如何配置GsonBuilder,如何处理日期和时间,如何处理嵌套...
GSON源码中的设计模式也值得学习,如工厂模式、装饰者模式和策略模式等。例如,`GsonBuilder`使用了工厂模式来创建定制化的`Gson`实例;`TypeAdapter`和`JsonSerializer/JsonDeserializer`则体现了策略模式,允许...
通过对gson-2.1源码的学习,开发者不仅可以理解Gson的工作原理,还能掌握如何利用其强大的自定义序列化和反序列化功能,以满足各种复杂的JSON数据处理需求。这对于进行Android开发或者任何Java项目中的数据交换都是...
通过这个示例,开发者可以学习如何在实际项目中有效地使用Gson来处理JSON数据,这对于任何涉及网络通信或需要存储结构化数据的应用来说都是至关重要的。无论是在Android开发还是普通的Java应用中,Gson都扮演着不可...
9. **源码分析**: gson-2.3.1-sources.jar包含了源代码,开发者可以直接查看源码,学习其实现细节,或者进行二次开发。 10. **开发包**: gson-2.3.1.jar是编译后的库文件,可以直接在项目中引入使用,无需额外编译...
通过查看源代码,我们可以深入理解Gson库的工作原理,学习如何更高效地使用它的API,甚至可以根据需要对库进行扩展或定制。源代码也可以帮助我们在遇到问题时进行调试,或者在遇到性能瓶颈时进行优化。 在实际开发...
- `gson-2.3.1-sources.jar`:源代码文件,开发者可以通过查看源码深入理解Gson的工作原理,对于调试和学习非常有帮助。 6. 使用示例: ```java import com.google.gson.Gson; import java.util.Date; class ...
深入研究Gson源码,我们可以学习到如何优雅地处理类型转换、反射以及如何实现高效的序列化和反序列化。对于开发者来说,这不仅可以加深对JSON处理的理解,还能借鉴其设计模式和编程技巧,提高自己的代码质量。 在...
而gson-2.2.4-sources.jar则提供了Gson库的源代码,对于开发者来说,这是一个宝贵的资源,可以深入理解库的内部实现,便于调试和学习。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读...
你可以查看源码,了解Gson内部的工作机制,学习如何实现类似的转换逻辑,或者调试和修复可能遇到的问题。 在实际开发中,Gson广泛应用于Web服务客户端、Android应用、服务器端以及任何需要处理JSON数据的Java项目中...
这个文件对于开发者来说非常有用,因为它允许查看和理解库内部的工作机制,便于调试和学习。如果你需要对Gson进行深度定制或者解决特定问题,源码将提供极大的帮助。 使用Gson时,你可以通过以下步骤将其引入Java...