目录
什么是JSON
JSON在JavaScript中的使用
JSON的定义
JSON的访问
JSON的两个常用方法
JSON在Java中的使用
JavaBean和JSON的相互转换
List和JSON的相互转换
Map和JSON的相互转换
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。JSON采用完全独立于语言的文本格式,而且很多语言都提供了对JSON的支持,包括C,C++,C#,Java,JavaScript,Perl,Python等,这就使得JSON成为理想的数据交换格式。
说明:轻量级指的是与xml作比较,数据交换指的是客户端和服务器之间业务数据的传递格式
JSON是由键值对组成,并且由花括号包围,每个键由引号引起来,键和值之间用冒号分隔,多组键值对之间用逗号分隔。
JSON本身是一个对象,JSON中的key可以理解为对象中的一个属性,JSON中访问key和访问对象的属性一样:JSON对象.key
JSON的存在有两种形式:
两种形式可以相互转换:
使用场景:
@Test public void test1(){ Person person = new Person(1,"你好"); //创建Gson对象实例 Gson gson = new Gson(); //toJson可以把Java对象转换为JSON字符串 String personJsonString = gson.toJson(person); System.out.println(personJsonString); //fromJson把JSON字符串转换回Java对象,第一个参数是JSON字符串,第二个参数是转换回去的Java对象类型 Person person1 = gson.fromJson(personJsonString,Person.class); System.out.println(person1); }
输出为:
{"id":1,"name":"你好"}
Pserson{id=1,name='你好'}
@Test public void test2(){ List personList = new ArrayList<>(); personList.add(new Person(1,"张三"); personList.add(new Person(2,"李四"); Gson gson = new Gson(); //把List转换为JSON字符串 String personListJsonString = gson.toJson(personList); System.out.println(personListJsonString); List list = gson.fromJson(personListJsonString,new PersonListType().getType()); System.out.println(list); }
输出为:
[{"id":1,"name":"张三"},{"id":2,"name":"李四"}]
[Person{id=1,name='张三'},Person{id=2,name='李四'}]
@Test public void test3(){ Map personMap = new HashMap<>(); personMap.put(1,new Person(1,"张三")); personMap.put(2,new Person(2,"李四")); Gson gson = new Gson(); //把Map集合转换为JSON字符串 String personMapJsonString = gson.toJson(personMap); System.out.println(personMapJsonString); Map personMap2 = gson.fromJson(personMapJsonString,new PersonMapType().getType()); System.out.println(personMap2); }
输出为:
{"1":{"id":1,"name":"张三"},"2":{"id":2,"name":"李四"}}
{1=Person{id=1,name="张三"},2=Person{id=2,name="李四"}}