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

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

 

 

相关文章
|
1月前
|
消息中间件 存储 缓存
十万订单每秒热点数据架构优化实践深度解析
【11月更文挑战第20天】随着互联网技术的飞速发展,电子商务平台在高峰时段需要处理海量订单,这对系统的性能、稳定性和扩展性提出了极高的要求。尤其是在“双十一”、“618”等大型促销活动中,每秒需要处理数万甚至数十万笔订单,这对系统的热点数据处理能力构成了严峻挑战。本文将深入探讨如何优化架构以应对每秒十万订单级别的热点数据处理,从历史背景、功能点、业务场景、底层原理以及使用Java模拟示例等多个维度进行剖析。
55 8
|
2月前
|
人工智能 自然语言处理 前端开发
SpringBoot + 通义千问 + 自定义React组件:支持EventStream数据解析的技术实践
【10月更文挑战第7天】在现代Web开发中,集成多种技术栈以实现复杂的功能需求已成为常态。本文将详细介绍如何使用SpringBoot作为后端框架,结合阿里巴巴的通义千问(一个强大的自然语言处理服务),并通过自定义React组件来支持服务器发送事件(SSE, Server-Sent Events)的EventStream数据解析。这一组合不仅能够实现高效的实时通信,还能利用AI技术提升用户体验。
244 2
|
1月前
|
数据采集 自然语言处理 搜索推荐
基于qwen2.5的长文本解析、数据预测与趋势分析、代码生成能力赋能esg报告分析
Qwen2.5是一款强大的生成式预训练语言模型,擅长自然语言理解和生成,支持长文本解析、数据预测、代码生成等复杂任务。Qwen-Long作为其变体,专为长上下文场景优化,适用于大型文档处理、知识图谱构建等。Qwen2.5在ESG报告解析、多Agent协作、数学模型生成等方面表现出色,提供灵活且高效的解决方案。
160 49
|
24天前
|
XML JSON JavaScript
HttpGet 请求的响应处理:获取和解析数据
HttpGet 请求的响应处理:获取和解析数据
|
2月前
|
自然语言处理 数据可视化 前端开发
从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
合合信息的智能文档处理“百宝箱”涵盖文档解析、向量化模型、测评工具等,解决了复杂文档解析、大模型问答幻觉、文档解析效果评估、知识库搭建、多语言文档翻译等问题。通过可视化解析工具 TextIn ParseX、向量化模型 acge-embedding 和文档解析测评工具 markdown_tester,百宝箱提升了文档处理的效率和精确度,适用于多种文档格式和语言环境,助力企业实现高效的信息管理和业务支持。
4087 5
从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
|
1月前
|
存储 分布式计算 Java
存算分离与计算向数据移动:深度解析与Java实现
【11月更文挑战第10天】随着大数据时代的到来,数据量的激增给传统的数据处理架构带来了巨大的挑战。传统的“存算一体”架构,即计算资源与存储资源紧密耦合,在处理海量数据时逐渐显露出其局限性。为了应对这些挑战,存算分离(Disaggregated Storage and Compute Architecture)和计算向数据移动(Compute Moves to Data)两种架构应运而生,成为大数据处理领域的热门技术。
67 2
|
2月前
|
XML JSON 数据可视化
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
本文详细介绍了不同数据集格式之间的转换方法,包括YOLO、VOC、COCO、JSON、TXT和PNG等格式,以及如何可视化验证数据集。
340 1
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
|
1月前
|
JavaScript API 开发工具
<大厂实战场景> ~ Flutter&鸿蒙next 解析后端返回的 HTML 数据详解
本文介绍了如何在 Flutter 中解析后端返回的 HTML 数据。首先解释了 HTML 解析的概念,然后详细介绍了使用 `http` 和 `html` 库的步骤,包括添加依赖、获取 HTML 数据、解析 HTML 内容和在 Flutter UI 中显示解析结果。通过具体的代码示例,展示了如何从 URL 获取 HTML 并提取特定信息,如链接列表。希望本文能帮助你在 Flutter 应用中更好地处理 HTML 数据。
122 1
|
1月前
|
数据采集 存储 自然语言处理
基于Qwen2.5的大规模ESG数据解析与趋势分析多Agent系统设计
2022年中国上市企业ESG报告数据集,涵盖制造、能源、金融、科技等行业,通过Qwen2.5大模型实现报告自动收集、解析、清洗及可视化生成,支持单/多Agent场景,大幅提升ESG数据分析效率与自动化水平。
108 0
|
2月前
|
JSON 安全 fastjson
高性能 JSON 处理:为何选择 Fastjson?
Fastjson 是由阿里巴巴集团开发的一个高性能的 JSON 处理库,它支持 Java 对象与 JSON 字符串之间的互相转换。
195 0
高性能 JSON 处理:为何选择 Fastjson?

热门文章

最新文章

推荐镜像

更多