目录
概述
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。
易于人阅读和编写。同时也易于机器解析和生成。这些特性使JSON成为理想的数据交换语言。
JSON的结构
键值对
“名称/值”对的集合(A collection of name/value pairs)
对象是一个无序的“‘名称/值’对”集合。一个对象以“{”开始,“}”结束。每个“名称”后跟一个“:”,“‘名称/值’ 对”之间使用“,”分隔。
示例:var json = {“name”:”Jack”,”age”:90,”Marray”:true};
有序列表
值的有序列表(An ordered list of values)
在大部分语言中,它被理解为数组(array)。
数组是值(value)的有序集合。一个数组以“[”开始,“]”结束。值之间使用“,”分隔。
示例:var json = [“Jack”,”Rose”,”Tom”,89,true,false];
JSON在java代码中的处理json-lib(重点)
JSON-lib 是一个java类库。
它可以转换 javabeans,maps,collections,java arrays 和XML成为json格式数据。
同样可以转换json格式数据成为javabeans对象。
依赖的jar包
jakarta commons-lang 2.5
jakarta commons-beanutils 1.8.0
jakarta commons-collections 3.2.1
jakarta commons-logging 1.1.1
ezmorph 1.0.6
将JavaBean/Map解析成JSON串
将Array和集合解析成json串
使用JsonConfig过虑属性
输出结果为:{“id”:“A001”},注意,没有name属性
将json串转成JavaBean/Map
借助JSON将字符串转换成集合
//要转换的字符串
String str = "[{\"age\":23,\"password\":\"ggg\",\"username\":\"aaa\"},"
+ "{\"age\":23,\"password\":\"ggg\",\"username\":\"aaa\"}]";
//把字符串转换成json数组
JSONArray ja = JSONArray.fromObject(str);
//创建json的配置对象
JsonConfig jc = new JsonConfig();
//设置要转换的类
jc.setRootClass(Person.class);
//把字符串转换成personList的集合
List<Person> personList = (List<Person>) JSONSerializer.toJava(ja, jc);
System.out.println(personList);