当前位置:网站首页 > 技术博客 > 正文

fastjson官网



阿里巴巴开发的开源JSON解析库,由Java语言编写,它主要被设计用于将 Java 对象与 JSON 数据进行相互转换。

PS:它是一个专注于JSON格式的Java库。Fastjson的主要功能包括JSON序列化和反序列化,即可以将Java对象转换为JSON格式的字符串,也可以将JSON字符串转换为Java对象。


 
   

PS:某些版本可能存在安全漏洞,因此在使用时需要确保使用的是最新且已修复漏洞的版本。


工具类,提供了一系列的静态方法来序列化和反序列化JSON(对象和数组)字符串和Java对象之间的转换。

常用方法

toJSONString(Object object)

作用:将Java对象序列化为JSON格式的对象或数组字符串。

返回值:序列化后的JSON格式的对象或数组字符串。

示例:

 
    
  • 注意:。(看一下这个反序列化对象或数组,如果不匹配会发生什么问题,搜一下)


parseObject(String text)

作用:

返回值:

示例:


parseObject(String text, Class<T> clazz)

作用:将JSON对象字符串反序列化为Java对象。

返回值:反序列化后的Java对象。

示例:

 
       

PS:User 类中的字段名称必须与 JSON 字符串中的键名称相匹配,否则无法正确映射。


parseArray(String text)

作用:将JSON格式的数组字符串反序列化为集合,不需要指定集合中元素的类型。

返回值:反序列化后的Java集合,集合中的元素类型为Object类型。

示例:

 
        

PS:这种方法在你不知道或者不关心数组中元素的具体类型时非常有用。


parseArray(String text, Class<T> clazz)

作用:将JSON格式的数组字符串反序列化为Java中的集合对象,需要指定集合中元素的类型。

返回值:反序列化后的Java集合,集合中元素的类型为指定的类型。

示例:

 
         

补充:将JSON字符串反序列化为Java中的数组

说明:fastJson中JSON类并没有直接提供一个将 JSON 字符串转换为 Java 数组的方法,但可以先将 JSON 数组字符串转换为 JSONArray,然后从中提取数据并转换为 Java 数组。

示例:

 
         


isValid(String text)

作用:验证JSON字符串的有效性。

返回值:返回值为boolean类型,JSON字符串有效返回true,否则返回false。

示例:

 
           

public static final Object parse(String text); // 将JSON文本解析为JSONObject或JSONArray


public static final JSONObject parseObject(String text); // 将JSON文本解析为JSONObject
public static final <T> T parseObject(String text, Class<T> clazz); // 将JSON文本解析为JavaBean

public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本



使用  处理泛型类型.....

// 将 JSON 字符串转换为 List<User> 对象 ...

 
            

前置:

将传入的JSON格式数据转为JSONObject示例:

 
            


用于处理JSON对象的类。继承自JSON类,并且实现了Map<String,Object>接口,数据结构为键值对的形式(通过键获取值)。

 
             

常用方法

特别说明:因fastJson主要是为了处理序列化和反序列化,对于Map接口的方法实现可能在方法内直接调用其它Map实现类的方法。但对于我们使用者来说,无需太过关注底层实现(fastjson是开源的,可能在不同版本底层实现会有所不同)。

put(String key, Object value)

作用:添加(或修改)一个键值对。

返回值:先前的值(Object类型),如果键已经存在则返回该键对应的旧值,否则返回null。

示例:

 
              
remove(Object key)

作用:移除指定的键及其对应的值,如果键不存在则返回null。

返回值:移除的键对应的值(Object类型)。

示例:

 
               
get(String key)

作用:根据给定的键(key)获取对应的值(value)。如果键不存在,则返回null。

返回值:具体键对于的值(Object类型)。

示例:

 
                
get*系列

作用:提供了类型安全的方法来获取特定类型的值。如果键不存在或值无法转换为请求的类型,这些方法将抛出异常。

返回值:根据调用的get*的方法获取特定类型的值。

示例:

 
                 
KeySet()

作用:获取所有键集合。

返回值:Set集合类型的键集合。

示例:

 
                  
size()

作用:获取JSONObject中键值对的数量。

返回值:键值对的数量。

示例:

 
                   
containsKey(Object key)

作用:判断JSONObject是否包含指定的键。

返回值:一个boolean值。

示例:

 
                    

containsValue(Object value)

作用:判断JSONObject是否包含指定的值(此方法可能需要遍历整个JSONObject,因此效率可能较低)。

返回值:一个boolean值。

示例:

 
                     
clear()

作用:移除JSON对象中的所有键值对。

返回值:无。

示例:

 
                      
toJSONString()

作用:将JSONObject对象转换为JSON格式的字符串。

返回值:转换后JSON字符串。

示例:

 
                       

用于处理JSON数组的类,继承自JSON类,并且实现了List<Object>接口,数据结构为集合的形式(通过下标获取值)。

常用方法

add(Object value)

作用:

返回值:

示例:

 
                        

get

size

toJSONString()

作用:将JSONArray转换为JSON字符串。

返回值:转换后JSON字符串。

示例:

 
                         

toArray()

作用:将JSONArray转换为Java数组。

返回值:转换后的Object数组。

示例:

 
                           
toJavaList(JSONArray jsonArray)

作用:将JSONArray转换为Java集合。

返回值:转换后的Java List。

示例:

 
                            


注解(Annotation)是一种用于为Java代码提供元数据的机制,它允许开发者在编译时为类、方法、变量等添加额外的信息,这些信息可以在运行时通过反射机制获取。fastjson提供了几种特定的注解,用于控制JSON序列化和反序列化的行为。

1. fastjson中的注解

fastjson主要提供了以下几种注解:

  • :用于JavaBean上,可以规定哪些字段需要忽略或者需要包含,以及配置特性。
  • :用于JavaBean的具体字段或者方法上,可以修改某个属性的输出名称,规定其支持序列化或者反序列化与否以及规定序列化顺序。
  • :用于构造方法上,标识这个构造方法是用于反序列化的。
  • :用于构建者模式(Builder Pattern)的类上,标识这个类是用于构建JavaBean的。

2. 注解的作用

  • 控制序列化和反序列化的行为:通过注解,可以指定哪些字段需要被序列化或反序列化,哪些字段需要被忽略。
  • 自定义字段名称:在JSON和JavaBean之间映射时,可以使用注解来指定字段的别名。
  • 指定序列化顺序:可以通过注解来指定字段的序列化顺序。
  • 支持复杂的JSON结构:例如,对于嵌套的JSON对象或数组,可以使用注解来指导fastjson如何正确地解析它们。

3. 注解的具体参数说明

以为例,其主要参数包括:

  • :用于指定序列化后的JSON字段名或反序列化时的JSON字段名。例如:。
  • :当字段类型为时,用于指定日期时间的格式化字符串。
  • :用于指定该字段是否参与序列化。当值为时,该字段不会被序列化到JSON中。
  • :用于指定该字段是否参与反序列化。当值为时,该字段在反序列化时不会被赋值。
  • :这是一个类型的枚举数组,用于指定该字段的序列化特性。例如,表示当该字段的值为时,仍然会将其序列化到JSON中。

请注意,以上参数并非的全部参数,fastjson的注解还提供了许多其他功能和选项,可以根据具体需求进行配置。此外,、和等注解也有各自特定的参数和用法。建议查阅fastjson的官方文档或相关教程以获取更详细的信息。


无需了解,快速上手使用。

JSON有两种基本结构:JSON对象和JSON数组。

明天补充示例---Java对象中包含对象转为JSON对象,JSON中对象中包含对象转为Java

JSON数组中的数组转为Java,JSON数组中的对象转为Java

还有一大堆JSON数组的示例...


示例(序列化)代码如下所示:

 
                               

输出结果:{"firstName":"John","lastName":"Doe"}


示例(反序列化)代码如下所示:

 
                                

输出结果:

John

Doe


 
                                 

输出结果:

Name: John

Age: 30

 
                                 

输出结果:



rap
John
Doe



 
                                 

输出结果:

张三

李四




JSON是什么?以及JSON结构的说明。

JSON(JavaScript Object Notation)-CSDN博客

序列化和反序列

序列化和反序列化-CSDN博客

版权声明


相关文章:

  • c++运算符重载有什么用2025-10-04 09:30:00
  • python 规范2025-10-04 09:30:00
  • 同步异步阻塞非阻塞2025-10-04 09:30:00
  • xps结合能c1s校准2025-10-04 09:30:00
  • 最新socks5代理2025-10-04 09:30:00
  • matlab如何编写函数并调用2025-10-04 09:30:00
  • pyautogui依赖包2025-10-04 09:30:00
  • 最稳定的linux桌面版2025-10-04 09:30:00
  • ddos攻击工具下载2025-10-04 09:30:00
  • openapi工具2025-10-04 09:30:00