使用 FastJson 解析 Json 数据|学习笔记

简介: 快速学习 使用 FastJson 解析 Json 数据

开发者学堂课程【SpringBoot 实战教程 使用 FastJson 解析 Json 数据】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/651/detail/10790


使用 FastJson 解析 Json 数据


内容介绍:

一、启动类继承 WebMvcConfigurerAdapter

二、把消息转换器注入到容器

 

一、启动类继承 WebMvcConfigurerAdapter

1、通过上一讲学习知道了 springboot 默认消息转换器对于阶层的处理springboot 也进行了配置SpringBoot 默认配置的是 Jackson。

2、在 autoconfigure 里面找和  web 相关的 web 依赖HttpMessageConvertersAutoConfiguration.class 自动配置用的就是 Jackson。

3、如果不想用 Jackson,想用别的进行阶层转换比如 fastjson

4、使用 FastJson 解析 JsonS 数据使用 fastjson 的依赖的 jar 包把它放进工程中使用1.2.15版本

<!-- fastjson 的依赖 -->

<dependency>

<groupId>com. alibaba</groupId>

<artifactId> fastjson</ artifactId>

<version>1.2.15</version>

</dependency>

5、jar 包依赖好后在 springboot 中使用 fastjson 的配置方式有两种第一种是让启动类继承一个东西第二种是 bean 注入的方式

6、首先看第一种方式让启动类继承 WebMvcConfigurerAdapter重写 configureMessageConverters 方法需要把 fastjson 消息转换器注入到 spring 容器中

image.png

VoidconfigureMessageConverters (List<HttpMessageConverter<?>>

converters) {

//创建 fastjson 的消息转换器

FastJsonHttpMessageConverter convert = new

FastJsonHttpMessageConverter() ;

//创建 fastjson 的配置对象

FastJsonConfigconfig = new FastJsonConfig() ;

//对 json 数据进行格式化

config.setSerializerFeatures(SerializerFeature.PrettyFoumat) ;通常希望返回的阶层数据是可以被格式化的对应一个常量,用来做相关配置

convert. setFastJsonConfig (config) ;

config 对象给 Convert 转化器这个转换器要加入都容器中重写有一个参数HttpMessageConverter集合类型把它加入到集合中即可

converters. add (convert);

}

这就是第一种配置 fastjson 的方式

(1)验证 springboot 会不会使用配置的 fastjson首先创建一个实体类命名为 person

(2)定义一些属性生成 setget 方法写一个 controller让它返回 person 对象把 person 对象转成阶层模式

Private Int id;

Private String name ;

Private Date date ;

public int getId() {

Return id;

}

public void setId(int id) {

this. id = id;

}

public String getName () {

Return name ;

(3)单独创建一个放实体类的包移动

(4)创建 controller命名为 testcontroller

(5)写一个功能返回的是 person 对象创建一个 person 对象导入 setidsetnamesetdate 日期

@RequestMapping ( "/person")

@ResponseBody

Person ren =new Person() ;

ren. setId(66) ;

ren. setName ("赵六") ;

ren. setDate (new Date() ) ;

Return ren ;

(6)另外需要扫描 controller 所在的包在启动类中加入

@SpringBootApplication (scanBasePackages=" com. qianfeng. controller")

(7)测试启动访问路径是 person可以到看出现了乱码的问题日期没有指定格式它是毫秒数springboot 默认用的是 utl-8,为什么会出现乱码呢

image.png

(8)现在属于 springboot 对客户端的响应响应用的肯定不是 utf -8响应的配置默认没有开启 把 springboot 的 response 编码设置为 utf -8这个功能开启开启的方式是在全局配置文件中加入以下代码

spring .http. encoding. force=true

(9)在 resources 下创建全局配置文件

(10)加入spring .http. encoding. force=true这时 springboot 对客户端进行响应使用的就是 utf -8

(11)重新启动访问乱码问题就解决了

image.png

(12)如何验证是 fastjson 有可能是 jackson在 person 上使用 fastjson 注解对日期进行格式化指定规定的格式年月日@JSONField ( format=yyyy-MM-dd" )

(13)重新启动再重新访问刷新可以看到规定的日期格式说明解析用的就是 fastjson。

image.png

让启动类继承 WebMvcConfigurerAdapter这种方式是第一种方式

 

二、把消息转换器注入到容器

1、@bean 注解写一个方法这个方法返回的必须是消息转换器对象通过第一种方法消息转换器是 HttpMessageConverter 类型实际上用的是 fastjson 转换器最终把返回的对象注入到容器中

@Bean

public HttpMessageConvertersfastJsonMssageConverter ()

//创建 fastjson 的消息转换器

FastJsonHttpMessageConverter convert = new

FastJsonHttpMessageConverter() ;

//创建 fastjson 的配置对象

FastJsonConfigconfig = new FastJsonConfig() ;

//对 json 数据进行格式化

config.setSerializerFeatures(SerializerFeature.PrettyFoumat) ;convert. setFastJsonConfig (config) ;

HttpMessageConverter<?>con=convert;

Return new HttpMessageConverter(con) ;

这是配置 FastJson 的第二种方式

2、启动看能否正常使用访问跟第一种方法的结果是一样的

image.png

3、可以把格式改成时分秒再启动访问这时变成年月日时分秒

image.png

4、这就是在 springboot 中配置 FastJson 进行 jackson 转换的方式

 

 

相关文章
|
4月前
|
JSON API 数据格式
淘宝拍立淘按图搜索API系列,json数据返回
淘宝拍立淘按图搜索API系列通过图像识别技术实现商品搜索功能,调用后返回的JSON数据包含商品标题、图片链接、价格、销量、相似度评分等核心字段,支持分页和详细商品信息展示。以下是该API接口返回的JSON数据示例及详细解析:
|
4月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
4月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
5月前
|
JSON 缓存 自然语言处理
多语言实时数据微店商品详情API:技术实现与JSON数据解析指南
通过以上技术实现与解析指南,开发者可高效构建支持多语言的实时商品详情系统,满足全球化电商场景需求。
|
4月前
|
JSON 中间件 Java
【GoGin】(3)Gin的数据渲染和中间件的使用:数据渲染、返回JSON、浅.JSON()源码、中间件、Next()方法
我们在正常注册中间件时,会打断原有的运行流程,但是你可以在中间件函数内部添加Next()方法,这样可以让原有的运行流程继续执行,当原有的运行流程结束后再回来执行中间件内部的内容。​ c.Writer.WriteHeaderNow()还会写入文本流中。可以看到使用next后,正常执行流程中并没有获得到中间件设置的值。接口还提供了一个可以修改ContentType的方法。判断了传入的状态码是否符合正确的状态码,并返回。在内部封装时,只是标注了不同的render类型。再看一下其他返回的类型;
222 3
|
4月前
|
JSON Java Go
【GoGin】(2)数据解析和绑定:结构体分析,包括JSON解析、form解析、URL解析,区分绑定的Bind方法
bind或bindXXX函数(后文中我们统一都叫bind函数)的作用就是将,以方便后续业务逻辑的处理。
320 3
|
5月前
|
JSON API 数据安全/隐私保护
Python采集淘宝评论API接口及JSON数据返回全流程指南
Python采集淘宝评论API接口及JSON数据返回全流程指南
|
5月前
|
JSON 自然语言处理 监控
淘宝关键词搜索与商品详情API接口(JSON数据返回)
通过商品ID(num_iid)获取商品全量信息,包括SKU规格、库存、促销活动、卖家信息、详情页HTML等。
|
5月前
|
JSON 自然语言处理 API
多语言实时数据淘宝商品评论API:技术实现与JSON数据解析指南
淘宝商品评论多语言实时采集需结合官方API与后处理技术实现。建议优先通过地域站点适配获取本地化评论,辅以机器翻译完成多语言转换。在合规前提下,企业可构建多语言评论数据库,支撑全球化市场分析与产品优化。
|
5月前
|
机器学习/深度学习 JSON API
干货,淘宝拍立淘按图搜索,淘宝API(json数据返回)
淘宝拍立淘按图搜索API接口基于深度学习与计算机视觉技术,通过解析用户上传的商品图片,在淘宝商品库中实现毫秒级相似商品匹配,并以JSON格式返回商品标题、图片链接、价格、销量、相似度评分等详细信息。

热门文章

最新文章

推荐镜像

更多
  • DNS