使用FastJson导出JSON
概述
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的更多相关文章
- sqlyog导出json数据格式支持mysql数据转存mongodb
		<!-------------知识的力量是无限的(当然肯定还有更简单的方法)-----------!> 当我考虑将省市区三级联动数据从mysql转入mongodb时遇到了网上无直接插入mo ... 
- FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
		fastJson对于json格式字符串的解析主要用到了一下三个类: JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换. JSONObject:fas ... 
- fastjson转换json字符串key的首字母小写变大写的解决办法
		https://blog.csdn.net/erbao_2014/article/details/53688934 问题描述在开发过程中,由于接口文档的描述,要求json字符串的key首字母为大写,而 ... 
- fastjson生成JSON字符串的时候出现$ref
		fastjson生成JSON字符串的时候出现$ref 转载自:http://wuzhuti.cn/201426!826!05!130202.html 可以通过选项 DisableCircularRef ... 
- Spring Boot返回json数据及完美使用FastJson解析Json数据
		Spring Boot返回json数据 视频地址:http://www.iqiyi.com/w_19rubxzsr5.html 博文参考:https://blog.csdn.net/linxingl ... 
- 将csv导出json格式
		将csv导出json格式 import os,csv,json cf = open('D:\OneDrive\\Tech\\Script\\Powershell_Script\\Uxin_work\\ ... 
- springboot使用fastJson作为json解析框架
		springboot使用fastJson作为json解析框架 springboot默认自带json解析框架,默认使用jackson,如果使用fastjson,可以按照下列方式配置使用 〇.搭建spri ... 
- 使用Fastjson生成Json字符串少字段属性(数据丢失)
		最后是控制台打印生成的结果如下:FastJson生成字符串是:{"id":"2","name":"节点1"," ... 
- fastjson处理json
		返回主页 你是风儿 博客园首页新随笔联系订阅管理 随笔 - 29 文章 - 0 评论 - 23 FastJson对于JSON格式字符串.JSON对象及JavaBean之间的相互转换 fastJson对 ... 
随机推荐
- @Controller 注解?
			该注解表明该类扮演控制器的角色,Spring不需要你继承任何其他控制器基类或引用Servlet API. 
- 如何将 memcached 中 item 批量导入导出?
			您不应该这样做!Memcached 是一个非阻塞的服务器.任何可能导致 memcached 暂停或瞬时拒绝服务的操作都应该值得深思熟虑.向 memcached 中批量导入数据往往不是您真正想要的!想象 ... 
- Java 中的 ReadWriteLock 是什么?
			读写锁是用来提升并发程序性能的锁分离技术的成果. 
- Linux 中进程有哪几种状态?在 ps 显示出来的信息中,  分别用什么符号表示的?
			1.不可中断状态:进程处于睡眠状态,但是此刻进程是不可中断的.不可中断, 指进程不响应异步信号. 第 441 页 共 485 页2.暂停状态/跟踪状态:向进程发送一个 SIGSTOP 信号,它就会因响 ... 
- css技术之用最高和最宽的限制“max-height和max-width”做图片同比例缩放,达到图片不变形目的,做出批量打印图片功能,页面打印“window.print()”
			一.简介 他们是为流而生的,像width/height这种定死的砖头式布局,min-width/max-width就没有存在的意义 ,min-width/max-width一定是自适应布局或流体布局中 ... 
- ARM指令集详解--汇编
			1. 汇编 1.1. 通用寄存器 通用寄存器 37个寄存器,31个通用寄存器,6个状态寄存器,R13堆栈指针sp,R14返回指针,R15为PC指针, cpsr_c代表的是这32位中的 ... 
- 学习移动机器人SLAM、路径规划必看的几本书
			作者:小白学移动机器人链接:https://zhuanlan.zhihu.com/p/168027225来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 声明:推荐正版图 ... 
- C++ | 栈的应用(逆波兰算法) | 计算器
			#include <iostream> using std::cin; using std::cout; using std::endl; template<typename T&g ... 
- 03. Pandas数据结构
			03. Pandas数据结构 Series DataFrame 从DataFrame中查询出Series 1. Series Series是一种类似于一维数组的对象,它由一组数据(不同数据类型)以及一 ... 
- 论文解读(XR-Transformer)Fast Multi-Resolution Transformer Fine-tuning for Extreme Multi-label Text Classification
			Paper Information Title:Fast Multi-Resolution Transformer Fine-tuning for Extreme Multi-label Text C ... 
