首页 > 其他分享 >FastJson使用详解

FastJson使用详解

时间:2024-06-22 22:10:39浏览次数:24  
标签:FastJson jsonStr JSON 详解 user 使用 序列化 User

FastJson文章目录
第一章 FastJson使用详解这一篇就够了
第二章 FastJsonHttpMessageConverter 类的作用与使用详解
第三章 Jackson 使用详解

文章目录
FastJson文章目录
前言
一、FastJson是什么?
二、使用步骤
1.引入库
2.序列化和反序列化Java对象
3 解析JSON字符串
4 使用注解控制序列化和反序列化
5 配置FastJson
总结
前言
为什么使用fastJson,如何使用fastJson以及通用的配置和使用方式将在本文进行详细介绍。

一、FastJson是什么?
FastJson是一种高性能的Java JSON解析库,它采用类似于Jackson和Gson的JSON序列化和反序列化机制,但是速度更快。FastJson支持Java对象到JSON的序列化和JSON到Java对象的反序列化,同时支持对JSON字符串的高效解析。

二、使用步骤
1.引入库
首先需要将FastJson添加到项目的依赖中。可以在Maven的pom.xml文件中添加以下依赖:

com.alibaba fastjson 1.2.75

1
2
3
4
5
6
2.序列化和反序列化Java对象
使用FastJson将Java对象序列化为JSON字符串很简单,只需要调用FastJson提供的静态方法JSON.toJSONString()。例如:

代码如下(示例):

User user = new User();
user.setId(1);
user.setName("张三");
user.setAge(18);
String jsonStr = JSON.toJSONString(user);
System.out.println(jsonStr);

1
2
3
4
5
6
7
使用FastJson将JSON字符串反序列化为Java对象也很简单,只需要调用FastJson提供的静态方法JSON.parseObject()。例如:

String jsonStr = "{"id":1,"name":"张三","age":18}";
User user = JSON.parseObject(jsonStr, User.class);
System.out.println(user);

1
2
3
4
3 解析JSON字符串
FastJson提供了一个JSON类,可以方便地解析JSON字符串。例如:

String jsonStr = "{"id":1,"name":"张三","age":18}";
JSONObject jsonObject = JSON.parseObject(jsonStr);
int id = jsonObject.getIntValue("id");
String name = jsonObject.getString("name");
int age = jsonObject.getIntValue("age");
System.out.println(id + ", " + name + ", " + age);

1
2
3
4
5
6
7
4 使用注解控制序列化和反序列化
FastJson提供了一些注解,可以用于控制序列化和反序列化。例如:

public class User {

@JSONField(name = "userId")
private int id;

@JSONField(serialize = false)
private String name;

@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date birthday;

// getter和setter方法

}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
在上面的代码中,@JSONField注解指定了JSON字段的名称、是否序列化、日期格式等属性。可以使用以下代码进行序列化和反序列化:

User user = new User();
user.setId(1);
user.setName("张三");
user.setBirthday(new Date());
String jsonStr = JSON.toJSONString(user);
System.out.println(jsonStr);

String jsonStr2 = "{"userId":1,"birthday":"2022-04-03 14:16:45"}";
User user2 = JSON.parseObject(jsonStr2, User.class);
System.out.println(user2.getId() + ", " + user2.getBirthday());

1
2
3
4
5
6
7
8
9
10
11
5 配置FastJson
FastJson提供了一个FastJsonConfig类,用于配置FastJson的一些参数。例如:

FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);

1
2
3
详细配置可参考本系列另一篇文章FastJsonHttpMessageConverter 类的作用与使用详解

总结
以上就是FastJson的具体使用方式。
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/qq_28754027/article/details/129930844

标签:FastJson,jsonStr,JSON,详解,user,使用,序列化,User
From: https://www.cnblogs.com/huft/p/18262794

相关文章

  • 【区分vue2和vue3下的element UI Descriptions 描述列表组件,分别详细介绍属性,事件,方法
    在ElementUI(为Vue2设计)和ElementPlus(为Vue3设计)中,Descriptions(描述列表)组件通常用于展示一系列的结构化信息。然而,需要明确的是,ElementUI官方库中并没有直接名为Descriptions的组件,但在ElementPlus中,该组件是存在的。以下将分别介绍ElementPlus中的De......
  • 【区分vue2和vue3下的element UI Result 结果组件,分别详细介绍属性,事件,方法如何使用,并
    在Vue2中,ElementUI并没有直接提供名为Result的组件。但是,在Vue3的ElementPlus中,Result组件是用来展示操作结果或状态信息的。以下是ElementPlus中Result组件的详细介绍,以及如何在Vue3中使用它。由于Vue2没有该组件,我将只介绍Vue3下的使用。Vu......
  • 【vueUse库Sensors模块各函数简介及使用方法---下篇】
    vueUse库是一个专门为Vue打造的工具库,提供了丰富的功能,包括监听页面元素的各种行为以及调用浏览器提供的各种能力等。其中的Browser模块包含了一些实用的函数,以下是这些函数的简介和使用方法:vueUse库Sensors模块各函数简介及使用方法vueUseSensors函数1.usePag......
  • N32G031 IWDG使用
    目录IWDG功能简介N32G031IWDG使用步骤示例代码(简化版)N32G031是一款基于ARMCortex-M0内核的32位微控制器,由南京沁恒微电子股份有限公司设计。该系列微控制器广泛应用于工业控制、消费电子、物联网等领域。IWDG(IndependentWatchdog)即独立看门狗,是一个重要的系统可靠性组......
  • 【python】pandas:Series详解
    Series是Pandas库中的一个核心数据结构,用于处理一维数组型数据,并带有与之相关的数据标签(通常称为“索引”)。Series可以被视为一个固定大小的、有序的、可以包含任何数据类型的数组。以下是关于Series的详细介绍:定义Series是一个一维的、大小可变的、可以包含任何数据类型......
  • 十大经典排序算法——插入排序与希尔排序(超详解)
    一、插入排序1.基本思想直接插入排序是一种简单的插入排序法,基本思想是:把待排序的记录按其数值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列。2.直接插入排序当插入第end+1 个元素时,前面的arr[0],arr[1],... ,arr[end]已经......
  • 分享记录在使用ubuntu部署项目(api接口项目)的步骤+自己踩过的坑(亲身经历,坑挺多的)
    安装虚拟机VMwareWorkstationPlayer/Pro优点:高性能:VMware的虚拟机通常具有更好的性能和稳定性。丰富的功能:特别是Pro版本,支持快照、多级别快照、克隆虚拟机等高级功能。商业支持:有商业支持选项,适合企业用户。缺点:费用:WorkstationPlayer是免费的,但功能有限。Workst......
  • 使用 Python 进行测试(7)...until you make it
    总结我很懒,我想用最少的行动实现目标,例如生成测试数据。我们可以:使用随机种子保证数据的一致性。>>>random.seed(769876987698698)>>>[random.randint(0,10)for_inrange(10)][10,9,1,9,10,6,5,10,1,9]>>>random.seed(769876987698698)>>>[random.r......
  • 在IntelliJ IDEA中使用Spring Boot:快速配置
    使用IntelliJIDEA开发SpringBoot应用程序可以极大地提高开发效率,因为IDEA提供了许多便捷的功能,比如自动补全、代码分析、热部署等。以下是一篇可能的CSDN博客文章草稿,介绍如何在IntelliJIDEA中使用SpringBoot:在IntelliJIDEA中使用SpringBoot:开发指南引言IntelliJ......
  • 在windows下使用cmd命令行对java文件进行编译和执行
    系列文章目录文章目录系列文章目录前言前言前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。windows下利用cmd命令行可以调用jdk里的javac.exe和java.exe对java文件进......