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

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 快速学习 使用 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 转换的方式

 

 

目录
打赏
0
0
0
0
55
分享
相关文章
JSON数据解析实战:从嵌套结构到结构化表格
在信息爆炸的时代,从杂乱数据中提取精准知识图谱是数据侦探的挑战。本文以Google Scholar为例,解析嵌套JSON数据,提取文献信息并转换为结构化表格,通过Graphviz制作技术关系图谱,揭示文献间的隐秘联系。代码涵盖代理IP、请求头设置、JSON解析及可视化,提供完整实战案例。
JSON数据解析实战:从嵌套结构到结构化表格
Bilibili直播信息流:连接方法与数据解析
本文详细介绍了自行实现B站直播WebSocket连接的完整流程。解析了基于WebSocket的应用层协议结构,涵盖认证包构建、心跳机制维护及数据包解析步骤,为开发者定制直播数据监控提供了完整技术方案。
淘宝拍立淘按图搜索API接口系列的应用与数据解析
淘宝拍立淘按图搜索API接口是阿里巴巴旗下淘宝平台提供的一项基于图像识别技术的创新服务。以下是对该接口系列的应用与数据解析的详细分析
python语言采集淘宝商品详情数据,json数据示例返回
通过淘宝开放平台的API接口,开发者可以轻松获取商品详情数据,并利用这些数据进行商品分析、价格监控、库存管理等操作。本文提供的示例代码和JSON数据解析方法,可以帮助您快速上手淘宝商品数据的采集与处理。
微服务——SpringBoot使用归纳——Spring Boot返回Json数据及数据封装——封装统一返回的数据结构
本文介绍了在Spring Boot中封装统一返回的数据结构的方法。通过定义一个泛型类`JsonResult&lt;T&gt;`,包含数据、状态码和提示信息三个属性,满足不同场景下的JSON返回需求。例如,无数据返回时可设置默认状态码&quot;0&quot;和消息&quot;操作成功!&quot;,有数据返回时也可自定义状态码和消息。同时,文章展示了如何在Controller中使用该结构,通过具体示例(如用户信息、列表和Map)说明其灵活性与便捷性。最后总结了Spring Boot中JSON数据返回的配置与实际项目中的应用技巧。
11 0
|
1天前
|
微服务——SpringBoot使用归纳——Spring Boot返回Json数据及数据封装——使用 fastJson 处理 null
本文介绍如何使用 fastJson 处理 null 值。与 Jackson 不同,fastJson 需要通过继承 `WebMvcConfigurationSupport` 类并覆盖 `configureMessageConverters` 方法来配置 null 值的处理方式。例如,可将 String 类型的 null 转为 &quot;&quot;,Number 类型的 null 转为 0,避免循环引用等。代码示例展示了具体实现步骤,包括引入相关依赖、设置序列化特性及解决中文乱码问题。
14 0
|
1天前
|
微服务——SpringBoot使用归纳——Spring Boot返回Json数据及数据封装——Spring Boot 默认对Json的处理
本文介绍了在Spring Boot中返回Json数据的方法及数据封装技巧。通过使用`@RestController`注解,可以轻松实现接口返回Json格式的数据,默认使用的Json解析框架是Jackson。文章详细讲解了如何处理不同数据类型(如类对象、List、Map)的Json转换,并提供了自定义配置以应对null值问题。此外,还对比了Jackson与阿里巴巴FastJson的特点,以及如何在项目中引入和配置FastJson,解决null值转换和中文乱码等问题。
12 0
【实战解析】smallredbook.item_get_video API:小红书视频数据获取与电商应用指南
本文介绍小红书官方API——`smallredbook.item_get_video`的功能与使用方法。该接口可获取笔记视频详情,包括无水印直链、封面图、时长、文本描述、标签及互动数据等,并支持电商场景分析。调用需提供`key`、`secret`和`num_iid`参数,返回字段涵盖视频链接、标题、标签及用户信息等。同时,文章提供了电商实战技巧,如竞品监控与个性化推荐,并列出合规注意事项及替代方案对比。最后解答了常见问题,如笔记ID获取与视频链接时效性等。
如何高效爬取天猫商品数据?官方API与非官方接口全解析
本文介绍两种天猫商品数据爬取方案:官方API和非官方接口。官方API合法合规,适合企业长期使用,需申请企业资质;非官方接口适合快速验证需求,但需应对反爬机制。详细内容涵盖开发步骤、Python实现示例、反爬策略、数据解析与存储、注意事项及扩展应用场景。推荐工具链包括Playwright、aiohttp、lxml等。如需进一步帮助,请联系作者。
淘宝商品评论API接口系列的应用与数据解析
在电商平台中,用户评论是了解商品质量、服务水平和用户满意度的重要数据来源。淘宝作为中国最大的电商平台,提供了商品评论API接口,帮助开发者获取和分析用户评价数据。本文将介绍淘宝商品评论API接口系列的作用、使用方法,并通过示例展示如何调用API并解析返回的JSON数据。

热门文章

最新文章

推荐镜像

更多