阿里fastjson框架基础
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框架基础相关推荐
- JSON框架之阿里fastjson的介绍
前言 1.3 FastJson介绍 在日常的java项目开发中,JSON的使用越来越频繁,对于Json的处理工具也有很多.接下来就介绍一下阿里开源的一个高性能的JSON框架FastJson,功能完善, ...
- java ibatis 获取执行的sql_小程序官宣+JAVA 三大框架基础面试题
每天给你诚意满满的干货 虽然每天都会写代码,但编程语言里有太多知识点,许多知识长时间不用就会忘记,在我们要去参加面试或是其它一些场景下,需要做些题来查缺补漏.我在搜索过程中发现没有太好的刷题小程序,所 ...
- 阿里巴巴2022届应届生招聘 阿里云存储基础技术 研发测试算法
学弟学妹们好,我们是阿里云存储基础技术团队,正在进行2022届校招. 团队业务核心,团队氛围nice,对于每位实习同学都会配师兄专职辅导. 本次招聘为部门直招,简历直接推给Leader,反应更快速,合 ...
- Spring3.2.0-mybatis3.2.0 基于全注解搭建的后台框架-基础版
2019独角兽企业重金招聘Python工程师标准>>> 摘要: Spring3.2.0-mybatis3.2.0 基于全注解搭建的后台框架-基础版 没有什么不可能 之前一直用的是自 ...
- python学习框架图-Python学习---Python的框架基础学习
框架基础 框架实质: 所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端 B/S结构的响应: import socket def handle_requ ...
- 阿里云DDoS基础防护详解防护阈值黑洞时间详细说明
阿里云DDoS基础防护是免费赠送给用户的,每台实例都可以免费试用DDoS基础防护,护云盾分享DDoS基础防护的详细说明,包括防护阈值.防护流量.安全信誉及黑洞时间等: DDoS基础防护详解 阿里云免费 ...
- 《Android的设计与实现:卷I》——第2章 框架基础JNI
第2章 框架基础JNI JNI(Java Native Interface,Java本地接口)是Java平台上定义的一套标准的本地编程接口.JNI允许Java代码与本地代码互操作,即Java代码可以调 ...
- python前端学习-------Flask框架基础(建议收藏)
Flask框架基础 下载并安装Flask框架 Flask基础 第一个Flask应用 开启调试模式 路由 变量规则 构造URL HTTP方法 模板 语法格式 模板变量 控制结构 条件控制语句 `if` ...
- data spring 指定时区_Spring 框架基础(05):Mvc架构模式,执行流程详解
本文源码:GitHub || GitEE 一.SpringMvc框架简介 1.Mvc设计理念 MVC是一种软件设计典范,用一种业务逻辑.数据.界面显示分离的方法组织代码,将业务逻辑聚集到一个组件里面, ...
最新文章
- python库整理:collections.defaultdict
- linux下修改MySQL 密码
- QT 多屏参数获取和设置
- Spring Boot修改添加界面二合一
- 监听者模式 java_java监听者模式
- Netty-1-一个简单的服务器实例
- 【java笔记】File类(3):FileFilter文件过滤器原理和使用
- codeIgniter3 学习笔记二(基于 MVC 开发模式实现小案例)
- Tapestry5的喜爱.
- python处理nc气象数据_气象数据处理——nc文件
- 推荐系统中的context到底指的是什么?
- java阿里云文本反垃圾sdk调用详解
- 计算机书籍推荐 活着,信息朗读者 |《活着》——19级计算机实验班蔺子健
- 深入解析著名的阿里云Log4j 漏洞
- 祁文之恋——婚纱照——准备
- 《比尔总动员》2013年7月11版别更新公告
- Android 11.0 支持exfat格式
- 儿童php钢板,儿童尺桡骨双骨折:弹性髓内钉还是钢板?
- flac文件如何快速转换为wav格式
- 2018年“京东好店”排行榜发布 这100家店凭什么上榜
热门文章
- Python Lost connection to MySQL server during query
- 珍贵的人生格言81条
- 基于AM5728的OpenCL例程开发分享
- 【Python 3.7】分子运动:修改 rw_visual.py,将其中的 plt.scatter() 替换为 plt.plot() 。为 模拟花粉在水滴表面的运动路径
- InnoSetup 使用
- 紫杉醇人血清白蛋白纳米粒PTX-HSA|阿霉素卵清白蛋白纳米粒DOX-OVA|顺铂小鼠血清白蛋白纳米粒CDDP-MSA(试剂)
- (JAVA) 相邻数对
- pywifi连接中文wifi名称(乱码)连接不上问题解决方案
- Cisco PacketTracer5---三层交换机连接路由器配置
- 美丽的小丑,谁的悲哀