Java中使用fastJson
FastJson简介
Fastjson是阿里巴巴开发的一个开源Java库,用于处理JSON数据,广泛应用于Web服务、API接口、数据交换等多个场景。
FastJson的作用
主要作用是用于将Java对象转换为JSON格式,或将JSON字符串转换为Java对象。它可以操作任何Java对象。
主要特性有:
.a.高性能:采用“假定有序快速匹配”的算法,将JSON Parse的性能提升到极致,成为Java语言中最快的JSON库之一。
.b.功能完善:支持丰富的数据类型转换、格式化输出、自定义序列化与反序列化等。
.c.简单易用:提供简洁明了的API接口,方便开发者快速上手。
FastJson 的依赖以及常规用法
对应的Maven依赖坐标如下:
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>2.0.43</version>
</dependency>
常规用法如下:
一、校验JSON字符串格式是否合法
用法一
JSON.isValid(字符串)
表示判断一个字符串是否为一个合法的JSON数据
JSON.isValidObject(字符串)
表示判断一个字符串是否为一个合法的JSON对象数据
用法二
JSON.isValidArray(字符串)
表示判断一个字符串是否为一个合法的JSON数组数据
.二、Java对象(自定义类,list集合,Map集合)等转JSON字符串的方式
JSON.toJSONString(Object 数据类型)
表示将一个Java对象转换为JSON字符串
.三、JSON格式数据和Java对象相互转换
用法一
JSON.parseObject(字符串)
表示将JSON字符串数据转换为JSONObject对象
用法二
JSON.parseObject(字符串, class)
将一个JSON字符串数据转换为一个Java对象
.四、JSON字符串和Java(集合)转换
用法一
JSON.parseArray(字符串)
表示将一个JSON字符串转换为Java(list)集合
FastJson的原理
Fastjson在序列化和反序列化过程中,通过反射机制和无参构造函数来实现对象和JSON字符串之间的转换。
FastJson案例演示:
示例代码一:
public static void main(String[] args) {
String jsonStr = "{\"error\": \"invalid_request\", \"error_description\": \"该用户名不存在!\"}";
// 验证JSON数据 是否合法
boolean flag = JSON.isValidObject(jsonStr);
System.out.println("flag-->" + flag);
flag = JSON.isValid(jsonStr);
System.out.println("flag-->" + flag);
flag = JSON.isValidArray(jsonStr);
System.out.println("flag-->" + flag);
// JSON字符串 转 JSONObject(fastjson内置对象)
JSONObject jsonObject = JSON.parseObject(jsonStr);
Object error = jsonObject.get("error");
System.out.println("error-->" + error);
Object errorDescription = jsonObject.get("error_description");
System.out.println("errorDescription-->" + errorDescription);
// JSON字符串 转 Java对象
ResultTest resultTest = JSON.parseObject(jsonStr, ResultTest.class);
System.out.println("error-->" + resultTest.getError());
System.out.println("errorDescription-->" + resultTest.getError_description());
// Java对象 转 JSON字符串
String jsonString = JSON.toJSONString(resultTest);
System.out.println("jsonString-->" + jsonString);
}
测试结果如下:

示例代码二:
public static void main(String[] args) {
// JSON 字符串转 JSONObject
String jsonStr = "{ \"code\":\"10000\", \"data\": [\"重庆\", \"成都\", \"西安\"]}";
// 验证JSON数据 是否合法
boolean flag = JSON.isValidObject(jsonStr);
System.out.println("flag-->" + flag);
flag = JSON.isValid(jsonStr);
System.out.println("flag-->" + flag);
flag = JSON.isValidArray(jsonStr);
System.out.println("flag-->" + flag);
JSONObject jsonObject = JSON.parseObject(jsonStr);
Object code = jsonObject.get("code");
System.out.println("code-->" + code);
Object data = jsonObject.get("data");
System.out.println("data-->" + data);
// JSON字符串 转 JSONArray(fastjson内置对象)
JSONArray objects = JSON.parseArray(data.toString());
System.out.println("objects-->" + objects.get(1));
// JSON字符串 转 Java对象
ResultArrayTest resultArrayTest = JSON.parseObject(jsonStr, ResultArrayTest.class);
System.out.println("code-->" + resultArrayTest.getCode());
System.out.println("data-->" + resultArrayTest.getData().get(1));
// Java对象 转 JSON字符串
String jsonString = JSON.toJSONString(resultArrayTest);
System.out.println("jsonString-->" + jsonString);
}
测试结果如下:

上面就是对JSON简单使用的讲解,有其他更好建议的小伙伴欢迎补充。
Java中使用fastJson的更多相关文章
- java中使用fastjson、jackson、json-lib解析JSON-------------------妈妈再也不用担心JSON解析
1.fastjson引入包<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjso ...
- Java中让fastJson识别Colloction和Map中的泛型类
由于fastJson的高效性,最近采用fastJson来做序列化并存储数据,但出现了一个麻烦的问题,如果将Map<K,V>这样的类型序列化,反序列化就会不尽人意,有以下尝试: 使用JSON ...
- JAVA中使用alibaba fastjson实现JSONObject、Object、Json字符串的转换
JAVA中使用alibaba fastjson实现JSONObject.Object.Json字符串的转换 Object转JSON字符串:String jsonStr = JSONObject.toJ ...
- java中的JSON数据转换方法fastjson
1 maven工程引入fastjson <?xml version="1.0" encoding="UTF-8"?> <project xml ...
- Redis学习记录之Java中的初步使用
1.关于Redis redis下载地址:<span style="font-family: Arial, Helvetica, sans-serif;">http:// ...
- Java中的Json序列化,不容忽视的getter
在开发的过程中,经常会碰到和自己预期不一样的情况.有的时候自己去研究一下还是很有趣的.这两天在写java web的时候,碰到了一个对象序列化的问题. 问题重现 public class AjaxJso ...
- Java中net.sf.json包关于JSON与对象互转的问题
在Web开发过程中离不开数据的交互,这就需要规定交互数据的相关格式,以便数据在客户端与服务器之间进行传递.数据的格式通常有2种:1.xml:2.JSON.通常来说都是使用JSON来传递数据.本文正是介 ...
- JSON(三)——java中对于JSON格式数据的解析之json-lib与jackson
java中对于JSON格式数据的操作,主要是json格式字符串与JavaBean之间的相互转换.java中能够解析JSON格式数据的框架有很多,比如json-lib,jackson,阿里巴巴的fast ...
- Java中net.sf.json包关于JSON与对象互转的坑
在Web开发过程中离不开数据的交互,这就需要规定交互数据的相关格式,以便数据在客户端与服务器之间进行传递.数据的格式通常有2种:1.xml:2.JSON.通常来说都是使用JSON来传递数据.本文正是介 ...
- Java 中 Gson的使用
JSON 是一种文本形式的数据交换格式,它比XML更轻量.比二进制容易阅读和编写,调式也更加方便;解析和生成的方式很多,Java中最常用的类库有:JSON-Java.Gson.Jackson.Fast ...
随机推荐
- NC24158 [USACO 2015 Jan G]Moovie Mooving
题目链接 题目 题目描述 Bessie is out at the movies. Being mischievous as always, she has decided to hide from ...
- SpringBoot+Shiro+LayUI权限管理系统项目-2.业务模型分析
1.项目模型介绍 1.1 部门表 部门编码.部门名称.上级部门 1.2 角色表 角色编码.角色名称 1.3 权限表 权限名称.权限标识.权限类型.上级权限.URL.权限图标.是否外部打开 1.4 用户 ...
- QT - Day 5
1 event事件 用途:用于事件的分发 也可以做拦截操作,不建议 bool event( QEvent * e); 返回值 如果是true 代表用户处理这个事件,不向下分发了 e->ty ...
- win32 - 使用Desktop Duplication API复制桌面图像
该代码来源于codeproject,经过测试发现,在屏幕处于旋转的情况下捕获的图像是黑色的.暂时没有找到原因. 代码开箱即用, #define WIN32_LEAN_AND_MEAN #include ...
- GROW模型:世界上最常用的教练模型(**案例及全套表单)
http://www.360doc.com/content/21/0812/18/76566468_990752480.shtml <高绩效教练>一书的核心方法就是GROW模型. GROW ...
- 产品分享:Qt鸿图电子智慧白板(适合会议机、电子黑板、电子笔记、电子阅读器等场景),当前版本v1.0.0
产品 鸿途电子智慧白板. 原理 使用Qt技术为基础,开发的windows/ubuntu/arm电子绘图板,主要为windows,支持触摸鼠标,可以定制跨平台. 适合场景 1.会议机 ...
- Apple设备屏幕尺寸和方向
表格中包括了各种型号的iPad.iPhone.以及iPod touch等设备的详细信息,涵盖了从iPad Pro到各代iPhone和iPod touch的多个型号. 这些信息可用于开发应用程序时优化界 ...
- 如何在矩池云上运行 AI 图像编辑工具 DragGAN
5 月,DragGAN 横空出世,在开源代码尚未公布前,就在Github上斩获近 20000 Star,彼时,页面上只有效果图和一句"Code will be released in Jun ...
- 【Azure Redis 缓存】Redission客户端连接Azure:客户端出现 Unable to send PING command over channel
问题描述 Redission客户端连接Azure:客户端出现 Unable to send PING command over channel ... ... io.netty.channel.St ...
- 《A Hierarchical Framework for Relation Extraction with Reinforcement Learning》论文阅读笔记
代码 原文地址 摘要 现有的大多数方法在确定关系类型之前,需要先识别出所有的实体,这样就忽略了实体提及和关系类型之间的交互.本文提出了一种新颖的联合抽取范式,把相关实体看作是关系的参数( 首先检测一个 ...