示例代码
public static void main(String[] args) {//1. bean 和 json 互转
Person person = new Person("xiaoli",18);
String json = GsonUtil.bean2json(person);
System.out.println(json);
Person person2 = (Person)GsonUtil.json2bean(json, Person.class);
System.out.println(person2.toString());
//2. list 和 json 互转
List<Person> list = new ArrayList<Person>();
list.add(new Person("李四",10));
list.add(new Person("王五",20));
String listJson = GsonUtil.list2json(list);
System.out.println(listJson);
List json2List = GsonUtil.json2List(listJson);
System.out.println(json2List.toString());
//3. map 转 json
Map<String,Person> map = new HashMap<String,Person>();
map.put("map1",new Person("李四",10));
map.put("map2",new Person("王五",20));
String mapJson = GsonUtil.map2json(map);
System.out.println(mapJson);
Map<Object, Object> map2 = GsonUtil.json2Map(mapJson);
System.out.println(map2.toString());
//4. set 与 json 互转
Set<Person> set = new LinkedHashSet<Person>();
set.add(new Person("李四",10));
set.add(new Person("王五",20));
String setJson = GsonUtil.set2json(set);
System.out.println(setJson);
Set set1 = GsonUtil.json2Set(setJson);
System.out.println(set1.toString());
}
运行结果:
{"name":"xiaoli","age":18}
Person(name=xiaoli, age=18)
[{"name":"李四","age":10},{"name":"王五","age":20}]
[{name=李四, age=10.0}, {name=王五, age=20.0}]
{"map2":{"name":"王五","age":20},"map1":{"name":"李四","age":10}}
{map2={name=王五, age=20.0}, map1={name=李四, age=10.0}}
[{"name":"李四","age":10},{"name":"王五","age":20}]
[{name=李四, age=10.0}, {name=王五, age=20.0}]
小结
Gson 是 Google 开发的,所以也是经过了很多的验证。但是将字符串解析为指定的集合类型需要花点信息,因为涉及到了泛型—TypeToken 。
具体的 Gson 文章详见:Gson使用指南
JacksonGithub 地址:jackson
简单介绍一下 Jackson:
Jackson 是基于 Stream 构建的一款用户序列化和反序列化 JSON 的 Java 开源库。
社区活跃,更新速度快。
Spring MVC 的默认 JSON 解析器。
擅长处理各种大量数据格式模块。
Jackson 的核心模块由三部分组成。
jackson-core,核心包,提供基于「流模式」解析的相关 API,它包括 JsonPaser 和 JsonGenerator。
jackson-annotations,注解包,提供标准注解功能。