@[TOC] 目录
1.什么是JSON?
JSON: JavaScript Object Notation JS对象简谱 , 是一种轻量级的数据交换格式。
简单来说就是:
{
"name":"士成历险记",
"directory":["最初的旅人","风与诗的篇章","璃月与人的篇章","永恒的国度",{
"name":"起点亦是终点",
"info":"再见了,异乡人",
}],
"new":{
"name":"123",
"info":"456",
}
}
其实JSON数据就是一段字符串,只不过用了许多分隔符将其分隔开来了
- []代表的是一个数组
- {}代表的是一个对象
- “”代表属性值
- :冒号代表代表的是前后之间的关系,冒号前面是属性的名称,后面是属性的值,这个值可以是基本数据类型,也可以是引用数据类型。
2.如何解析JSON?
当前市面上最常用的两种解析方法,一种是Gson,还有一种是FastJson,虽然不多,但平时开发已经够用了。
由于我用的是IEDA解析的,所以再此之前我们需要导包。
1、先创建一个包
2、取名叫lib
3、然后把需要的jar包复制过来就可以了
Gson链接:https://search.maven.org/artifact/com.google.code.gson/gson/2.8.9/jar
FastJson链接:
https://repo1.maven.org/maven2/com/alibaba/fastjson/
4、按如下操作进行
这样我们就算是导包完成了,下面就可以进行解析了。
Gson解析
1、将对象转为Json字符串
public static void main(String[] args){
//1.创建一个book对象,并传入值
Book b = new Book(1001,"唐诗三百首","有300首诗篇");
//2.创建Gson对象
Gson g = new Gson();
//3.转换
String s = g.toJson(b);
System.out.println(s);
}
打印效果:
2、将JSON字符串转为对象
public static void main(String[] args){
//1.首先还是创建一个Gson对象
Gson g = new Gson();
//2.转换(输入你要转换的JSON字符串,并输入你要转换成的类)
Book b = g.fromJson("{\"id\":1001,\"name\":\"唐诗三百首\",\"info\":\"有300首诗篇\"}", Book.class);
//3.因为我这里转换成了Book类,所以我们来调用看看是否成功了
System.out.println(b.getId());
}
打印效果:
可以看到获取到的id的确是1001。
3、将集合转换为JSON字符串
public static void main(String[] args){
//1.创建一个Map集合
HashMap map = new HashMap();
map.put("1001","一二三");
map.put("1002","二三四");
map.put("1003","三四五");
//2.创建一个Gson对象
Gson g = new Gson();
//3.将map集合转换为JSON字符串
String s = g.toJson(map);
System.out.println(s);
}
打印效果:
FastJosn解析
1、将对象转换为JSON字符串
public static void main(String[] args){
Book b = new Book(1002,"静夜思","床前明月光");
//1.转换
String s = JSON.toJSONString(b);
System.out.println(s);
}
打印效果:
2、将JSON字符串转为对象
public static void main(String[] args){
Book book = JSON.parseObject("{\"id\":1002,\"info\":\"床前明月光\",\"name\":\"静夜思\"}", Book.class);
System.out.println(book.getId());
}
打印效果:
3、将JSON字符串转为数组
public static void main(String[] args){
List<String> list = JSON.parseArray("[\"一二三\",\"二三四\",\"三四五\"]",String.class);
System.out.println(list.get(0));
}
打印效果:
总结
以上就介绍了最普遍的两种解析JSON的方法,在开发的时候如果想确保数据的正确,又要确保性能,则可以两个一起用,即使用Gson将bean转换json确保数据的正确,使用FastJson将Json转换Bean。兼顾性能和准确性。