fastjson 是阿里巴巴公司开源的一个json序列化、反序列化轻量级框架,号称最快。
是因为其内置算法的增强,以及序列化时对class进行了细节的微妙处理,更多细节请查看其项目源码:https://github.com/alibaba/fastjson
常用方法示例:

package org.bron4j.jsn;import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.SerializerFeature;
import lombok.*;
import org.junit.Ignore;
import org.junit.Test;import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;/*** 阿里fastjson使用示例* <pre>* 隙月窥人小。* 无情汴水自东流。* 只载一船离恨、向西州。* 竹溪花浦曾同醉。* 酒味多于泪。* 谁教风鉴在尘埃。* 酝造一场烦恼、送人来。* </pre>*/
public class FastJson1 {@Test@Ignorepublic void test(){// 序列化Object jsonObj = JSON.toJSON(User.builder().name("Byron").age(17).build());System.out.println("JSON.toJSON 序列化结果:" + jsonObj);// 反序列化System.out.println("JSON.parseObject 反序列化结果:" + JSON.parseObject(jsonObj.toString(), User.class));List<String> list = new ArrayList<>();list.add("A"); list.add("B");// JSON.toJSON(list) 再强转成JAONARRAYJSONArray jSONArray = (JSONArray)JSON.toJSON(list);System.out.println("list序列化为jsonarra:" + jSONArray);System.out.println("JSONArray.parseArray:" + JSONArray.parseArray("[\"A\",\"B\"]"));Date date = new Date();// 指定序列化解析器System.out.println("时间序列化:" + JSON.toJSONString(date, SerializerFeature.WriteDateUseDateFormat));// 指定格式System.out.println("指定时间格式序列化::" + JSON.toJSONStringWithDateFormat(date,"yyyy-MM-dd HH:mm:ss.SSS"));System.out.println(JSON.toJSONString(date, SerializerFeature.WriteClassName));Object stuObj = JSON.toJSON(Student.builder().age(11).id(1).name("Harry").build());System.out.println(stuObj);// 反序列化集合System.out.println("反序列化集合:" + JSON.parseObject("[\"A\",\"B\"]", String.class));String text =  "{\"name\":{\"name\":\"ljw\",age:18}}";Map<String, User> userMap = JSON.parseObject(text, new TypeReference<Map<String, User>>() {});System.out.println("泛型反序列化:" + userMap);// 组合类型的反序列化List comList = new ArrayList();comList.add(User.builder().age(2).build());comList.add(Student.builder().name("Sker").build());String jsonStr= ((JSONArray)JSON.toJSON(comList)).toString();List res = JSON.parseArray(jsonStr, new Type[]{User.class, Student.class});for (Object ele : res){System.out.println("组合类型(list中包含多种数据类型的场景)反序列化:" + ele);}}/*** 常用方法使用*/@Testpublic void jsonMethodTest(){JSONObject jsonObj = JSON.parseObject("{\"name\":\"Harry\",\"ID\":1,\"age\":11}");System.out.println(jsonObj);Student s = JSON.parseObject("{\"name\":\"Harry\",\"ID\":1,\"age\":11}", Student.class);System.out.println(s.getName());List list = JSONObject.parseArray("[\"A\",\"B\"]", String.class);System.out.println(list);String jsonStr = JSONObject.toJSONString(s);System.out.println(jsonStr);// 第二个参数是表示是否格式化输出json串的形式String jsonStr2 =  JSONObject.toJSONString(s, true);System.out.println(jsonStr2);JSONObject js = (JSONObject) JSON.toJSON(s);System.out.println(js);}@Getter@Setter@Builder@AllArgsConstructor@NoArgsConstructor@ToStringstatic class User{String name;int age;}@Getter@Setter@Builder@AllArgsConstructor@NoArgsConstructor@ToStringstatic class Student{int id;String name;int age;/***  @JSONField 显示指定序列化的字段值,使用ID输出* @return*/@JSONField(name="ID")public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}
}

阿里fastjson框架基础相关推荐

  1. JSON框架之阿里fastjson的介绍

    前言 1.3 FastJson介绍 在日常的java项目开发中,JSON的使用越来越频繁,对于Json的处理工具也有很多.接下来就介绍一下阿里开源的一个高性能的JSON框架FastJson,功能完善, ...

  2. java ibatis 获取执行的sql_小程序官宣+JAVA 三大框架基础面试题

    每天给你诚意满满的干货 虽然每天都会写代码,但编程语言里有太多知识点,许多知识长时间不用就会忘记,在我们要去参加面试或是其它一些场景下,需要做些题来查缺补漏.我在搜索过程中发现没有太好的刷题小程序,所 ...

  3. 阿里巴巴2022届应届生招聘 阿里云存储基础技术 研发测试算法

    学弟学妹们好,我们是阿里云存储基础技术团队,正在进行2022届校招. 团队业务核心,团队氛围nice,对于每位实习同学都会配师兄专职辅导. 本次招聘为部门直招,简历直接推给Leader,反应更快速,合 ...

  4. Spring3.2.0-mybatis3.2.0 基于全注解搭建的后台框架-基础版

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: Spring3.2.0-mybatis3.2.0 基于全注解搭建的后台框架-基础版 没有什么不可能  之前一直用的是自 ...

  5. python学习框架图-Python学习---Python的框架基础学习

    框架基础 框架实质: 所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端 B/S结构的响应: import socket def handle_requ ...

  6. 阿里云DDoS基础防护详解防护阈值黑洞时间详细说明

    阿里云DDoS基础防护是免费赠送给用户的,每台实例都可以免费试用DDoS基础防护,护云盾分享DDoS基础防护的详细说明,包括防护阈值.防护流量.安全信誉及黑洞时间等: DDoS基础防护详解 阿里云免费 ...

  7. 《Android的设计与实现:卷I》——第2章 框架基础JNI

    第2章 框架基础JNI JNI(Java Native Interface,Java本地接口)是Java平台上定义的一套标准的本地编程接口.JNI允许Java代码与本地代码互操作,即Java代码可以调 ...

  8. python前端学习-------Flask框架基础(建议收藏)

    Flask框架基础 下载并安装Flask框架 Flask基础 第一个Flask应用 开启调试模式 路由 变量规则 构造URL HTTP方法 模板 语法格式 模板变量 控制结构 条件控制语句 `if` ...

  9. data spring 指定时区_Spring 框架基础(05):Mvc架构模式,执行流程详解

    本文源码:GitHub || GitEE 一.SpringMvc框架简介 1.Mvc设计理念 MVC是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个组件里面, ...

最新文章

  1. python库整理:collections.defaultdict
  2. linux下修改MySQL 密码
  3. QT 多屏参数获取和设置
  4. Spring Boot修改添加界面二合一
  5. 监听者模式 java_java监听者模式
  6. Netty-1-一个简单的服务器实例
  7. 【java笔记】File类(3):FileFilter文件过滤器原理和使用
  8. codeIgniter3 学习笔记二(基于 MVC 开发模式实现小案例)
  9. Tapestry5的喜爱.
  10. python处理nc气象数据_气象数据处理——nc文件
  11. 推荐系统中的context到底指的是什么?
  12. java阿里云文本反垃圾sdk调用详解
  13. 计算机书籍推荐 活着,信息朗读者 |《活着》——19级计算机实验班蔺子健
  14. 深入解析著名的阿里云Log4j 漏洞
  15. 祁文之恋——婚纱照——准备
  16. 《比尔总动员》2013年7月11版别更新公告
  17. Android 11.0 支持exfat格式
  18. 儿童php钢板,儿童尺桡骨双骨折:弹性髓内钉还是钢板?
  19. flac文件如何快速转换为wav格式
  20. 2018年“京东好店”排行榜发布 这100家店凭什么上榜

热门文章

  1. Python Lost connection to MySQL server during query
  2. 珍贵的人生格言81条
  3. 基于AM5728的OpenCL例程开发分享
  4. 【Python 3.7】分子运动:修改 rw_visual.py,将其中的 plt.scatter() 替换为 plt.plot() 。为 模拟花粉在水滴表面的运动路径
  5. InnoSetup 使用
  6. 紫杉醇人血清白蛋白纳米粒PTX-HSA|阿霉素卵清白蛋白纳米粒DOX-OVA|顺铂小鼠血清白蛋白纳米粒CDDP-MSA(试剂)
  7. (JAVA) 相邻数对
  8. pywifi连接中文wifi名称(乱码)连接不上问题解决方案
  9. Cisco PacketTracer5---三层交换机连接路由器配置
  10. 美丽的小丑,谁的悲哀