json的定义和解析
在实际的开发通常使用JQuery的Ajax ,或者Vue里面的axios
JSON就是一个容易生成和解析的数据格式;
常用作客户端(前端,IOS,安卓)和服务器(JavaEE)之间的数据交换
定义方式
- 对象形式:{key:value,key:value…}
- 数组形式:[element1, element2, …]
- 混合(嵌套)形式:以上两种类型任意混合
1). json对象的value,可以是任意类型,当然也可以是数组
2). 数组里的element,可以是任意类型,当然也可以是json对象
解析语法:
- 获取json对象里的value值:json对象.key
- 获取数组里指定索引的元素:数组[索引]
Jackson转换工具
.Jackson的API介绍
Jackson提供了转换的核心类:ObjectMapper
- JackSon: json和java对象互相转换的工具,SpringMVC默认的json转换器
- java对象转json(导入jar)
- 创建ObjectMapper对象
- 调用writeValueAsString(Object obj)
- json转java对象(导入jar)
- 创建ObjectMapper对象
- 调用readValue(String json,Class clazz)
readValue(String json, TypeReference reference)
TypeReference
是一个抽象类,用于配置完整的泛型映射信息,避免泛型丢失的问题
// List<Integer> 类型的映射信息
TypeReference ref1 = new TypeReference<List<Integer>>() {};
// List<User> 类型的映射信息
TypeReference ref2 = new TypeReference<List<User>>() {};
// Map<String,User> 类型的映射信息
TypeReference ref3 = new TypeReference<Map<String,User>>(){};
fastjson转换工具
- fastjson提供了核心类:JSON
- JSON提供了一些常用的静态方法:
- fastJSON: 阿里巴巴提供的json和java对象互转工具
- java对象转成json
- JSON.toJsonString(Object obj)
- json转成java对象
- JSON.parseObject(String json,Class clazz )