概述

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. Mybatis 是如何进行分页的?分页插件的原理是什么?

    Mybatis 使用 RowBounds 对象进行分页,它是针对 ResultSet 结果集执行的内 存分页,而非物理分页.可以在 sql 内直接书写带有物理分页的参数来完成物理分 页功能,也可以使用 ...

  2. JavaScript中call如何使用?

    一句话概括:call是函数才能调用的方法.作用是改变属性环境.有点绕,举个例子. 此处代码是在window环境下声明的变量和函数. var name='王延朋'; var age=18; var ex ...

  3. 小程序入门系列之 tabBar

    本系列为简单入门系列,以一定概括性思路来叙述内容,具体可以查看官网 大部分的电商应用都是底部或顶部多 tab 的模式. 下面我们从配置角度来分析一下: 第一个:position 配置如下: 默认是 b ...

  4. Hadoop 3.1.2报错:xception in thread "main" org.apache.hadoop.fs.UnsupportedFileSystemException: No FileSystem for scheme "hdfs"

    报错内容如下: Exception in thread "main" org.apache.hadoop.fs.UnsupportedFileSystemException: No ...

  5. Android项目如何打包成安装包.apk

    1.Build -> Generate Signed APK 2.APK -> Next 3.输入Key store path以及密码 ->next(如果是第一次则需要新建,新建教程 ...

  6. css使Img图片居中显示

    <div class="flex-center listing-img"> <img v-if="item.imgUrl" v-bind:sr ...

  7. 鸿蒙JS 开发整理

    目录 一.前言: 二.鸿蒙 JS UI框架 2.1 JS UI特性 2.2 架构 2.3 新的UI框架结构 三.API 四.最后 一.前言: 5月25日,华为对外宣布计划在6月2日正式举办鸿蒙手机发布 ...

  8. Redis 缓存击穿(失效)、缓存穿透、缓存雪崩怎么解决?

    原始数据存储在 DB 中(如 MySQL.Hbase 等),但 DB 的读写性能低.延迟高. 比如 MySQL 在 4 核 8G 上的 TPS = 5000,QPS = 10000 左右,读写平均耗时 ...

  9. ip地址后面斜杠加数字的含义

    案例如:10.121.246.8/29 1.概念: 首先这是一种划分ip的表示方式,叫做无分类域间路由选择(CIDR),区分于传统的划分ip方式(分类的ip划分,在这之后提出了划分子网,即将主机号借出 ...

  10. java实现ssh连接工具类

    import ch.ethz.ssh2.Connection;import ch.ethz.ssh2.Session;import ch.ethz.ssh2.StreamGobbler;import ...