Java FastJson使用教程

 更新时间:2020年10月10日 14:58:23   作者:拾阶求上  
这篇文章主要介绍了如何使用FastJson,帮助大家将 Java 对象转换为 JSON 格式,感兴趣的朋友可以了解下

Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。
Fastjson 可以操作任何 Java 对象,即使是一些预先存在的没有源码的对象。
Fastjson 源码地址:https://github.com/alibaba/fastjson
Fastjson 扩展阅读:https://www.w3cschool.cn/fastjson/

一、Fastjson 特性

  1. 提供服务器端、安卓客户端两种解析工具,性能表现较好。
  2. 提供了 toJSONString() 和 parseObject() 方法来将 Java 对象与 JSON 相互转换。调用toJSONString方 法即可将对象转换成 JSON 字符串,parseObject 方法则反过来将 JSON 字符串转换成对象。
  3. 允许转换预先存在的无法修改的对象(只有class、无源代码)。
  4. Java泛型的广泛支持。
  5. 允许对象的自定义表示、允许自定义序列化类。
  6. 支持任意复杂对象(具有深厚的继承层次和广泛使用的泛型类型)。

二、FastJson 使用(配置 maven 依赖)

<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>fastjson</artifactId>
  <version>x.x.x</version>
</dependency>

其中 x.x.x 是版本号,根据需要使用特定版本,建议使用最新版本。

三、创建 JSON 对象

创建 JSON 对象非常简单,只需使用 JSONObject(fastJson提供的json对象) 和 JSONArray(fastJson提供json数组对象) 对象即可。
我们可以把JSONObject 当成一个 Map<String,Object> 来看,只是 JSONObject 提供了更为丰富便捷的方法,方便我们对于对象属性的操作。我们看一下源码。

同样我们可以把 JSONArray 当做一个 List<Object>,可以把 JSONArray 看成 JSONObject 对象的一个集合。

此外,由于 JSONObject 和 JSONArray 继承了 JSON,所以说也可以直接使用两者对 JSON 格式字符串与 JSON 对象及 javaBean 之间做转换,不过为了避免混淆我们还是使用 JSON。

@Test
public void whenGenerateJson_thanGenerationCorrect() throws ParseException {
  JSONArray jsonArray = new JSONArray();
  for (int i = 0; i < 2; i++) {
    JSONObject jsonObject = new JSONObject();
    jsonObject.put("AGE", 10);
    jsonObject.put("FULL NAME", "Doe " + i);
    jsonObject.put("DATE OF BIRTH", "2016/12/12 12:12:12");
    jsonArray.add(jsonObject);
  }
  String jsonOutput = jsonArray.toJSONString();
}

四、JSON 字符串转换为 Java 对象

现在我们已经学会了如何创建 JSON 对象,以及如何将 Java 对象转换为 JSON 字符串,接下来我们就需要了解如何解析 JSON

@Test
public void whenJson_thanConvertToObjectCorrect() {
  Person person = new Person(20, "John", "Doe", new Date());
  String jsonObject = JSON.toJSONString(person);
  Person newPerson = JSON.parseObject(jsonObject, Person.class);
   
  assertEquals(newPerson.getAge(), 0); // 如果我们设置系列化为 false
  assertEquals(newPerson.getFullName(), listOfPersons.get(0).getFullName());
}

五、fastjson 常用 API

fastjson API 入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。

public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray 
public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject  
public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean 
public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray 
public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合 
public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本 
public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本 
public static final Object toJSON(Object javaObject); //将JavaBean转换为JSONObject或者JSONArray。

六、JSONField与JSONType注解的使用

fastjson提供了JSONField对序列化与反序列化进行定制,比如可以指定字段的名称,序列化的顺序。

其中serializeUsing与deserializeUsing可以用于对字段的序列化与反序列化进行定制化。

以上就是Java FastJson使用教程的详细内容,更多关于Java FastJson的资料请关注脚本之家其它相关文章!

相关文章

  • springboot处理异常的5种方式

    springboot处理异常的5种方式

    本文主要介绍了springboot处理异常的5种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • RocketMQ Broker实现高可用高并发的消息中转服务

    RocketMQ Broker实现高可用高并发的消息中转服务

    RocketMQ消息代理(Broker)是一种高可用、高并发的消息中转服务,能够接收并存储生产者发送的消息,并将消息发送给消费者。它具有多种消息存储模式和消息传递模式,支持水平扩展和故障转移等特性,可以为分布式应用提供可靠的消息传递服务
    2023-04-04
  • JAVA中的注解机制解读

    JAVA中的注解机制解读

    这篇文章主要介绍了JAVA中的注解机制解读,通过调用Java的反射机制相关API来访问annotation信息,首先加载使用注解的类,得到class类,然后再得到类相应的方法,成员变量,需要的朋友可以参考下
    2023-10-10
  • SpringBoot 整合Redis 数据库的方法

    SpringBoot 整合Redis 数据库的方法

    Redis是一个基于内存的日志型可持久化的缓存数据库,保存形式为key-value格式,Redis完全免费开源,它使用ANSI C语言编写。这篇文章主要介绍了SpringBoot 整合Redis 数据库的方法,需要的朋友可以参考下
    2018-03-03
  • 解决jmap命令打印JVM堆信息异常的问题

    解决jmap命令打印JVM堆信息异常的问题

    这篇文章主要介绍了解决jmap命令打印JVM堆信息异常的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • 安装elasticsearch-analysis-ik中文分词器的步骤讲解

    安装elasticsearch-analysis-ik中文分词器的步骤讲解

    今天小编就为大家分享一篇关于安装elasticsearch-analysis-ik中文分词器的步骤讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • Java Web项目部署在Tomcat运行出错与解决方法示例

    Java Web项目部署在Tomcat运行出错与解决方法示例

    这篇文章主要介绍了Java Web项目部署在Tomcat运行出错与解决方法,结合具体实例形式分析了Java Web项目部署在Tomcat过程中由于xml配置文件导致的错误问题常见提示与解决方法,需要的朋友可以参考下
    2017-03-03
  • SpringBoot封装JDBC的实现步骤

    SpringBoot封装JDBC的实现步骤

    本文主要介绍了SpringBoot封装JDBC的实现步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Java HttpClient用法的示例详解

    Java HttpClient用法的示例详解

    Java开发语言中实现HTTP请求的方法主要有两种:一种是JAVA的标准类HttpUrlConnection;另一种是第三方开源框架HTTPClient。本文就将详细讲讲Java中HttpClient的使用,需要的可以参考一下
    2022-07-07
  • Java中的final关键字深入理解

    Java中的final关键字深入理解

    这篇文章主要介绍了Java中的final关键字深入理解的相关资料,需要的朋友可以参考下
    2017-02-02

最新评论