1.基本概念
- JavaScript对象表示法 Javascript Object Notation
- json现在多用于存储和交换文本信息的语法
- 进行数据的传输
- json比XML更小、更快、更易解析
2.语法
- 基本规则
- 数据在名称/值对中:json数据由键值对构成。
- 键用单/双引号引起,也可以不使用;
- 值的取值类型
- 数字(整数或浮点数)
- 字符串(双引号)
- 逻辑值(true或false)
- 数组(在方括号中) {“Person”:[{ },{ }….]}
- 对象 {“address”:{“province”:”陕西”…}}
- null
- 数据由逗号隔开:多个键值对由都好分隔
- 花括号保存对象:使用{}定义json格式
- 方括号保存数组:[]
- 数据在名称/值对中:json数据由键值对构成。
- 获取数据
- json对象.键名
- json对象[“键名”]
- 数组对象[索引]
1 | <script> |
3.json数据和Java对象的相互转换
json解析器
Jsonlib、Gjson、fastjson、jackson(SprinMVC内置的解析器)
jackson解析器:Java对象转换JSON
- 导入Jackson相关jar包:https://mvnrepository.com/search?q=jackson
3.1 Java对象转换为json对象
转换核心对象ObjectMapper的转换方法:
writeValue(参数1,obj)
参数1: File:将obj对象转换为json字符串,并保存到指定文件中 Writer:将json字符串填充到字符输出流中 OutputStream:将json字符串填充到字节输出流中
writeValueAsString(obj)转换为json字符串
注解
@JsonIgnore //转换成json对象时忽略该属性
@JsonFormat:属性值格式化
@JsonFormat(pattern = “yyyy-MM-dd”)
复杂Java对象转换
- List:数组
- Map:对象格式一致
1 | public class JacksonTest { |
3.2json对象转换为Java对象
转换核心对象ObjectMapper的转换方法:
- readValue(json字符串,Class)
1 |
|