概述

fastjson是目前java语言中最快的json库,比自称最快的jackson速度要快,比gson快大约6倍。

https://github.com/alibaba/fastjson

FastJson常用方法

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。

Java ==> JSON

步骤

  • step1. 导入jar包
  • step2. 构建POJO
  • step3. 将POJO转换为JSON字符串:
    • JSON.toJSONString( 顶级POJO对象的引用 ) => 纯字符串,只有一行
    • JSON.toJSONString( 顶级POJO对象的引用, true) => 带格式
// 1)将JavaBean序列化为JSON文本
public static final String toJSONString(Object object); // 2)将JavaBean序列化为带格式的JSON文本
public static final String toJSONString(Object object, boolean prettyFormat);

一个简单的Demo

  • User.java
  public class User {
private String username;
private String password; // 构造器、方法略
}
  • UserGroup.java
  public class UserGroup {
private String name;
private List<User> users; // 构造器、方法略
}
  • TestFastJson.java
  public class TestFastJson {
@Test
public void objectToJson() {
// 简单的Java类转Json
User user = new User("ali", "123456");
String userJson = JSON.toJSONString(user);
System.out.println("简单Java类转Json字符串:"+ userJson); // List<Object>类转Json
User user1 = new User("coco", "123456");
User user2 = new User("ly", "789"); List<User> users = new ArrayList<User>();
users.add(user1);
users.add(user2); String listJson = JSON.toJSONString(users);
System.out.println("List<Object>转Json字符串" + listJson); // 复杂的Java类转Json字符串
UserGroup userGroup = new UserGroup("userGroup", users);
String userGroupJson = JSON.toJSONString(userGroup);
System.out.println("复杂的Java类转Json字符串:" + userGroupJson);
}
}
  • 控制台输出结果:
  简单Java类转Json字符串:{"password":"123456","username":"ali"}
List<Object>转Json字符串:[{"password":"123456","username":"coco"},{"password":"789","username":"ly"}]
复杂的Java类转Json字符串:{"name":"userGroup","users":[{"password":"123456","username":"coco"},{"password":"789","username":"ly"}]}

Demo2

  • User.java
  public class User {
private int id;
private String name;
private Computer computer; // 构造器、方法略
}
  • Computer.java
  public class Computer {
private String brand;
private String CPUdegree; // 构造器、方法略
}
  • TestObject.java
  package josn.mydemo;

  import org.junit.Test;

  import com.alibaba.fastjson.JSON;

  public class TestObject {
@Test
public void test() {
Computer computer = new Computer("Thinkpad", "intel core i7");
User user = new User(1, "大白", computer);
String userJson = JSON.toJSONString(user);
System.out.println(userJson);
}
}
  • 结果:

笔记

  • 定义POJO时,由里到外,先定义最里面的对象
  • 在fastjson中,缺省是不输出空值的。无论Map中的null和对象属性中的null,序列化的时候都会被忽略不输出,这样会减少产生文本的大小。 => 来自官方文档

使用FastJson导出JSON的更多相关文章

  1. sqlyog导出json数据格式支持mysql数据转存mongodb

    <!-------------知识的力量是无限的(当然肯定还有更简单的方法)-----------!> 当我考虑将省市区三级联动数据从mysql转入mongodb时遇到了网上无直接插入mo ...

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

    fastJson对于json格式字符串的解析主要用到了一下三个类: JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换. JSONObject:fas ...

  3. fastjson转换json字符串key的首字母小写变大写的解决办法

    https://blog.csdn.net/erbao_2014/article/details/53688934 问题描述在开发过程中,由于接口文档的描述,要求json字符串的key首字母为大写,而 ...

  4. fastjson生成JSON字符串的时候出现$ref

    fastjson生成JSON字符串的时候出现$ref 转载自:http://wuzhuti.cn/201426!826!05!130202.html 可以通过选项 DisableCircularRef ...

  5. Spring Boot返回json数据及完美使用FastJson解析Json数据

     Spring Boot返回json数据 视频地址:http://www.iqiyi.com/w_19rubxzsr5.html 博文参考:https://blog.csdn.net/linxingl ...

  6. 将csv导出json格式

    将csv导出json格式 import os,csv,json cf = open('D:\OneDrive\\Tech\\Script\\Powershell_Script\\Uxin_work\\ ...

  7. springboot使用fastJson作为json解析框架

    springboot使用fastJson作为json解析框架 springboot默认自带json解析框架,默认使用jackson,如果使用fastjson,可以按照下列方式配置使用 〇.搭建spri ...

  8. 使用Fastjson生成Json字符串少字段属性(数据丢失)

    最后是控制台打印生成的结果如下:FastJson生成字符串是:{"id":"2","name":"节点1"," ...

  9. fastjson处理json

    返回主页 你是风儿 博客园首页新随笔联系订阅管理 随笔 - 29 文章 - 0 评论 - 23 FastJson对于JSON格式字符串.JSON对象及JavaBean之间的相互转换 fastJson对 ...

随机推荐

  1. Nacos如果加载不到配置文件的Debug

    进入  com.alibaba.cloud.nacos.client.NacosPropertySourceLocator#loadApplicationConfiguration  这个方法 com ...

  2. Zookeeper 下 Server 工作状态 ?

    服务器具有四种状态,分别是 LOOKING.FOLLOWING.LEADING.OBSERVING. 1.LOOKING:寻找 Leader 状态.当服务器处于该状态时,它会认为当前集群中 没有 Le ...

  3. 什么是持续集成(CI)?

    持续集成(CI)是每次团队成员提交版本控制更改时自动构建和测试代码的过程. 这鼓励开发人员通过在每个小任务完成后将更改合并到共享版本控制存储库来共 享代码和单元测试.

  4. 配置sublime text 3来编写Markdown

    如何使用sublime text 3编写Markdown  编写markdown的编辑器无论客户端还是在线的都有很多,这里将sublime text3作为markdown的编辑器,需要进行一些配置. ...

  5. solr集群搭建,zookeeper集群管理

    1. 第一步 把solrhome中的配置文件上传到zookeeper集群.使用zookeeper的客户端上传. 客户端命令位置:/root/solr-4.10.3/example/scripts/cl ...

  6. Docker镜像构建之docker commit

    我们可以通过公共仓库拉取镜像使用,但是,有些时候公共仓库拉取的镜像并不符合我们的需求.尽管已经从繁琐的部署工作中解放出来了,但是在实际开发时,我们可能希望镜像包含整个项目的完整环境,在其他机器上拉取打 ...

  7. 8.5_线性控制器设计_轨迹跟踪(Follow a Desired Path)

    平衡点时所有的导数都为0 simulink中建立状态方程模型

  8. MATLAB设计模糊控制器并用simulink仿真

    一.设计模糊控制器1.1 创建项目文件夹在此路径如图 1.2 打开MATLAB打开MATLAB R2012a切换当前目录为上一步路径,如图 1.3 设计模糊控制器打开模糊控制器设计对话框 根据模糊控制 ...

  9. (十)React Ant Design Pro + .Net5 WebApi:后端环境搭建-IdentityServer4(二)授权模式

    一.前言 先交代一下整个Demo项目结构: 一个认证服务(端口5000)IdentityServer4.Authentication 五个授权模式(两个控制台程序,三个MVC项目端口5001)文件夹G ...

  10. 【uniapp 开发】如何给边框添加阴影效果

    css的box-shadow是用来添加边框阴影效果的. 属性值详解: 1.inset 可选值,默认阴影在盒子外 使用inset后,阴影在盒子内,即使指定边框或者透明边框,阴影依然存在. 2. 这是头两 ...