Json解析目前国内主要使用两种方法,一种是阿里的fastJson,另一种是谷歌的Gson。两种方法各有千秋,使用方法也非常接近。
一、使用谷歌的Gson解析
主要方法是Gson()和toJson()
1、转为Json对象
利用Book 类演示,包含id、name、info三个属性
//创建Gson对象:使用Gson()
Gson g = new Gson();
//将java对象转换为json对象并输出
Book b = new Book("100","西游记","唐僧取经的故事");
String s = g.toJson(b);
System.out.println(s);
2、转换为java对象
//创建Gson对象:使用Gson()
Gson g = new Gson();
//将json对象转换为java对象
Book c = g.fromJson("{\"id\":\"100\",\"name\":\"西游记\",\"info\":\"唐僧取经的故事\"}",Book.class);
System.out.println(c.getId());
3、转换为集合对象
//创建Gson对象:使用Gson()
Gson g = new Gson();
//将json对象转换为集合对象;map类型
HashMap data = g.fromJson("{\"id\":\"100\",\"name\":\"西游记\",\"info\":\"种植苹果的故事\"}",HashMap.class);
System.out.println(data.get("id"));
4、数组转换:
//创建Gson对象:使用Gson()
Gson g = new Gson();
//数组转换
HashMap data2 = g.fromJson(" {\"id\":\"100\",\"name\":\"金苹果\",\"info\":\"种植苹果的故事\",\"page\":[\"危楼高百尺\",\"手可摘星辰\",\"不敢高声语\",\"恐惊天上人\"]}",HashMap.class);
System.out.println(data2.get("page"));//此处打印的实际上是一个ArrayList
List page = (List) data2.get("page");
System.out.println(page.get(1));
二、使用阿里的fastJson解析
1、java对象转换为json对象
Book book = new Book("1002","唐诗三百首","远看山有色,近听水无声,春去花还在,人来鸟不惊");
String json = JSON.toJSONString(book);
System.out.println(json);
2、Json对象转换为java对象
Book b = JSON.parseObject("{\"id\":\"1002\",\"info\":\"远看山有色,近听水无声,春去花还在,人来鸟不惊\",\"name\":\"唐诗三百首\"}",Book.class);
System.out.println(b.getId());
3、转换数组 ["你好吗","我很好","我也很好"]
List<String> hello = JSON.parseArray("[\"你好吗\",\"我很好\",\"我也很好\"]",String.class);
System.out.println(hello.get(1));