前言
JSON是一种轻量化的数据编码方式它不依赖于编程语言是独立的文本格式。和xml相比JSON具有格式简洁,转译速度快的特点,因此现在被广泛使用。JSON的本质是字符串,采用了特定的分隔方式对字符串进行分隔。
一、JSON的语法
JSON对象语法有对象、数组和二者混合等方式。
JSON对象的属性储存类似于键值对的存储方式,用“{}”来分隔对象,采用的是“:”分隔变量名称和值,对于JAVA来说变量名称和值都必须用” ”修饰否则会报错。各变量之间用“,”分隔,注意最后一个变量不能加“,”。
实例如下:
{"name":"张曼玉","number":"YT1995","address":"上海"}
2、数组语法
JSON数组之间使用“[]”来分隔,数组元素间用“,”隔开。元素类型可以为任意类型
实例如下:
["768547","456","124","545"]
3、混合使用
混合使用则是将对象和数组混合使用,同时还可以嵌套使用。
示意如下:
{"name":"[]","number":"YT1995","address":"上海"}
二、json的转化功能的使用
1.导入jar文件
目前常用的JSON转化工具有谷歌的Gson和阿里的fastjson,这两的工具都是jar文件,使用时将下载的jar文件导入项目中既可以使用jar进行转换。
2.jar中的转换功能的使用
1、Gson中进行数据转换
类到字符串:1创建Gson对象,2创建类对象,3调用toJson方法将类对象转化成字符串
package Demo; import com.google.gson.Gson; public class Demo2 { public static void main(String[] args) { Gson g=new Gson();//创建Gson对象 Student s=new Student("张曼玉","YT1995","上海");//创建学生对象 String s1 = g.toJson(s);//将学生对象转化为字符串 System.out.println(s1); } }
字符串到类:1创建Gson对象,2.调用fromJson方法转化字符串
package Demo; import com.google.gson.Gson; public class Demo1 { public static void main(String[] args) { Gson g=new Gson(); String data="{\"name\":\"张曼玉\",\"number\":\"YT1995\",\"address\":\"上海\"}"; Student s1 = g.fromJson(data, Student.class);//将字符串转化为对象 System.out.println(s1); } }
2、fastjson中进行数据转换
类到字符串:与Gson不同的是fastjson不需要创建Gson对象而是直接调用方法将类转化为字符串;而且打印出的对象顺序也与Gson不同。
package Demo; import com.alibaba.fastjson.JSON; public class Demo3 { public static void main(String[] args) { //{"name":"张曼玉","number":"YT1995","address":"上海"} //{"address":"河南","name":"柳岩","number":"hn1314"} Student s1=new Student("柳岩","hn1314","河南");//创建学生类 String s = JSON.toJSONString(s1);//将学生类转化为字符串 System.out.println(s); } }
字符串到类:同样也不需创建对象而是直接调用JSON.parseObject方法实现字符串到类的转化
package Demo; import com.alibaba.fastjson.JSON; import java.util.List; public class Demo4 { public static void main(String[] args) { String data="{\"address\":\"河南\",\"name\":\"柳岩\",\"number\":\"hn1314\"}"; Student s1 = JSON.parseObject(data, Student.class);//将字符串转化为类 System.out.println(s1); } }