Java FastJson使用教程

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的资料请关注我们其它相关文章!

(0)

相关推荐

  • FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换操作

    fastJson对于json格式字符串的解析主要用到了一下三个类: JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换. JSONObject:fastJson提供的json对象. JSONArray:fastJson提供json数组对象. 我们可以把JSONObject当成一个Map<String,Object>来看,只是JSONObject提供了更为丰富便捷的方法,方便我们对于对象属性的操作.我们看一下源码. 同样我们可以把JSONArra

  • Java的JSON处理器fastjson使用方法详解

    fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发. 主要特点: • 快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson) • 强大(支持普通JDK类包括任意Java Bean Class.Collection.Map.Date或enum) • 零依赖(没有依赖其它任何类库除了JDK) 示例代码: import com.alibaba.fastjson.JSON; Group group = new Group

  • Java 中FastJson的基本使用

    FastJSON是一个Java语言编写的高性能,功能完善,完全支持http://json.org的标准的JSON库. 在开发Android的过程中,如果我们经常与服务器打交道,更新数据等等,那么json必然是个好的数据格式,但是有了json我们要解析它,使用原生的解析也可以,但是很不高效,所以这里介绍两种json数据解析的方式, 一种是FastJSon ,这个是阿里巴巴出的,号称最快的解析速度. 第二种使我们伟大的Google提供的Gson 来解析json,两个解析json都很方便,而且都很强大

  • java使用FastJson解析Json数据

    fastjson 是一个性能极好的用 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发. 主要特点: 快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson) 强大(支持普通JDK类包括任意Java Bean Class.Collection.Map.Date或enum) 零依赖(没有依赖其它任何类库除了JDK) 一 .生成Json: JavaBean.List<JavaBean>.List<String>.List<Map&l

  • java JSON解析库Alibaba Fastjson用法详解

    本文实例讲述了java JSON解析库Alibaba Fastjson用法.分享给大家供大家参考,具体如下: Json是一种轻量级的数据交换格式,应该在一个程序员的开发生涯中是常接触的.简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言. 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率. 现在主流的对象与 JSON 互转的工具很多,这里介绍的是阿里巴巴的开源库 - Fastjson.Fastjson是一个Java库,可用于将Java对象转换为其JSON表示.它还可用

  • java如何利用FastJSON、Gson、Jackson三种Json格式工具自定义时间序列化

    Java处理JSON数据有三个比较流行的类库FastJSON.Gson和Jackson. Jackson Jackson是由其社区进行维护,简单易用并且性能也相对高些.但是对于复杂的bean转换Json,转换的格式鄙视标准的Json格式.PS:Jackson为Spring MVC内置Json解析工具 Gson Gson是由谷歌公司研发的产品,目前是最全的Json解析工具.完全可以将复杂的类型的Json解析成Bean或者Bean到Json的转换 FastJson Fastjson是一个Java语言

  • java中fastjson生成和解析json数据(序列化和反序列化数据)

    本文讲解2点: 1. fastjson生成和解析json数据 (举例:4种常用类型:JavaBean,List<JavaBean>,List<String>,List<Map<String,Object>) 2.通过一个android程序测试fastjson的用法. fastjson简介: Fastjson是一个Java语言编写的高性能功能完善的JSON库.fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jack

  • Java fastjson解析json字符串实现过程解析

    jar的下载 maven方式 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.67</version> </dependency> jar包 百度云链接:https://pan.baidu.com/s/1x_C4ii3OFMXbsoqikmZKGw 提取码:ku6z 示例 解析j

  • Java FastJson使用教程

    Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象. Fastjson 可以操作任何 Java 对象,即使是一些预先存在的没有源码的对象. Fastjson 源码地址:https://github.com/alibaba/fastjson Fastjson 扩展阅读:https://www.w3cschool.cn/fastjson/ 一.Fastjson 特性 提供服务器端.安卓客户端两种解析工具,性能表

  • Java正则表达式学习教程

    本教程旨在帮助你驾驭Java正则表达式,同时也帮助我复习正则表达式. 什么是正则表达式? 正则表达式定义了字符串的模式.正则表达式可以用来搜索.编辑或处理文本.正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别.Java正则表达式和Perl的是最为相似的. Java正则表达式的类在 java.util.regex 包中,包括三个类:Pattern,Matcher 和 PatternSyntaxException. Pattern对象是正则表达式的已编译版本.他没有任何公共构造器,我们通

  • java Swing基础教程之图形化实例代码

    java  Swing基础教程之图形化实例代码 与多线程.泛型等不同,Swing主要在于使用. 下面主要放代码和注释,少说话. (一)基本框架 package Swing; import java.awt.*; import javax.swing.*; /** * * @author QuinnNorris * 基本框架 */ public class FrameTest { /** * @param args */ public static void main(String[] args)

  • Java log4j详细教程

    一:Log4j入门简介学习 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程.最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码. 此外,通过Log4j其他语言接口,您可以在C.C++..Net.PL/SQL程序中

  • Java反射简易教程

    关于Java反射,我们需要弄懂以下几个问题: 反射是什么?反射有什么用?怎么用反射? 下面我们来一一进行讲解: 一.反射是什么? Reflection的意思是"反射.映象.倒影",用在Java身上指的是我们可以于运行时加载.探知.使用编译期间完全未知的classes.换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实体.或对其fields设值.或唤起其methods. Java反射机制是在运行状态中,对于任意一个

  • IntelliJ IDEA 中使用jRebel进行 Java 热部署教程图解

    jrebel JRebel是一套JavaEE开发工具.JRebel允许开发团队在有限的时间内完成更多的任务修正更多的问题,发布更高质量的软件产品. JRebel是收费软件,用户可以在JRebel官方站点下载30天的评估版本. Jrebel 可快速实现热部署,节省了大量重启时间,提高了个人开发效率. Rebel是一款JAVA虚拟机插件,它使得JAVA程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响.JRebel使你能即时分别看到代码.类和资源的变化,你可以一个个地上传而不

  • java FastJson的简单用法

    目录 1.前言 1.1.FastJson的介绍: 1.2.FastJson的特点: 1.3.FastJson的简单说明: 2.FastJson的用法 2.1.JSON格式字符串与JSON对象之间的转换 2.2.JSON格式字符串与javaBean之间的转换 2.3.javaBean与json对象间的之间的转换 总结 参考 1.前言 1.1.FastJson的介绍: JSON(javaScript Object Notation)是一种轻量级的数据交换格式.主要采用键值对({"name"

  • java  Swing基础教程之图形化实例代码

    java  Swing基础教程之图形化实例代码 与多线程.泛型等不同,Swing主要在于使用. 下面主要放代码和注释,少说话. (一)基本框架 package Swing; import java.awt.*; import javax.swing.*; /** * * @author QuinnNorris * 基本框架 */ public class FrameTest { /** * @param args */ public static void main(String[] args)

  • Java easyexcel使用教程之导出篇

    目录 EasyExcel简介 1.导入Maven依赖 2.新建Student.java类 3.generateStudentUtil.java类,随机生成Student对象 4.BaseTest.java 4.导出Excel报表 5.把姓名格式化:1显示男,0显示女 6.把体重保留2位小数 7.过滤字段不生成excel 8.冻结列, 冻结姓名列 总结 EasyExcel简介 EasyExcel是一个基于Java的简单.省内存的读写Excel的开源项目.在尽可能节约内存的情况下支持读写百M的Exc

  • Java Swagger使用教程

    目录 Swagger简介 为什么使用Swagger Swagger的配置 Spring boot集成Swagger 新建一个spring boot项目 导入两个依赖 配置Swagger 配置Swagger可扫描的接口 控制Swagger的开关 设置Swagger的分组 Swagger的各种注释 使用Swagger接口测试 Swagger简介 为什么使用Swagger   这个问题就牵涉到技术的更新迭代了,在之前的后端时代,前端只需要管理静态页面,而后端需要使用模板引擎(JSP等)去得数据并加以处

随机推荐