fastjson前言

fastJson是阿里巴巴出品的一个json序列化工具。

引入依赖

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.75</version>
</dependency>

对象创建

JSONObject object=new JSONObject();

常用方法

1:public static String toJSONString(Object object)将对象序列化json字符串;

2:public static String toJSONString(Object object, SerializerFeature... features)将对象序列化json字符串,并保留类特征,在将json字符串反序列化为对象时,序列化前必须用这个进行方法进行序列化,否则反序列化失败;

3:public static Object parse(String text)将字符串反序列化为对象,若要反序列化为自己定义的对象,即向下强转,则必须使用ParserConfig.getGlobalInstance().addAccept("com.example.demo.entity.")进行白名单设置

4:public static JSONObject parseObject(String text)将json字符串序列化为json对象。

5:public Object put(String key, Object value)添加键值对。

jackson前言

国外著名的json工具。

引入依赖

  • jackson-core,核心包,提供基于"流模式"解析的相关 API,它包括 JsonPaser 和 JsonGenerator。 Jackson 内部实现正是通过高性能的流模式 API 的 JsonGenerator 和 JsonParser 来生成和解析 json。
  • jackson-annotations,注解包,提供标准注解功能;
  • jackson-databind ,数据绑定包, 提供基于"对象绑定" 解析的相关 API ( ObjectMapper ) 和"树模型" 解析的相关 API (JsonNode);基于"对象绑定" 解析的 API 和"树模型"解析的 API 依赖基于"流模式"解析的 API。
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.4</version>
</dependency>

jackson-databind 依赖 jackson-core 和 jackson-annotations,当添加 jackson-databind 之后, jackson-core 和 jackson-annotations 也随之添加到 Java 项目工程中。在添加相关依赖包之后,就可以使用 Jackson。

创建对象

JsonMapper mapper=new JsonMapper();

常用方法

1:public String writeValueAsString(Object value) throws JsonProcessingException 将对象序列化json字符串;

2:public <T> T readValue(String content, Class<T> valueType) 将字符串转换为对应的对象;

readValue(String content, Class<T> valueType)方法valueType必须和传入的content键完全对应,否则报错

常用注解

1:@JsonProperty 用于属性,把属性的名称序列化时转换为另外一个名称。示例:

  • @JsonProperty("birth_ d ate")

    private Date birthDate;

2:@JsonFormat 用于属性或者方法,把属性的格式序列化时转换成指定的格式。示例:

  • @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")

    public Date getBirthDate();

  • 备注

    JsonFormat注解和下面yml配置配合解决后端传入前端时间格式问题

spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
  • 前端传入后端时间格式问题
  • @DateTimeFormat(pattern = "yyyy-MM-dd")

    public Date getBirthDate();

3:@JsonNaming(value = PropertyNamingStrategy.UpperCamelCaseStrategy.class)用于对象,将属性首字母格式化时转化为大写。示例:

  • @JsonNaming(value = PropertyNamingStrategy.UpperCamelCaseStrategy.class)

    public class RefundBHRequest implements Serializable {};

如果知道Object的具体对象是谁,可以进行强转,如(QueryRefundNumberRequest)object。

json-lib前言

Json-lib 是以前 Java 常用的一个 Json 库,最后的版本是 2.4,分别提供了 JDK 1.3 和 1.5 的支持。

引入依赖

        <dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>

创建对象

1:JSONObject object=new JSONObject(): 创建普通的JSONObject对象;

2:JSONArray array=new JSONArray():创建数组对象

常用方法

1:JSONObject JSONObject.fromObject(student) 将Map,实体对象转成JSONObject对象;

2:JSONArray JSONArray.fromObject(list) 将List集合转成JsonArray数组对象;

3: public Object put(Object key, Object value)对对象进行赋值;

4: public Object remove(String key)根据key值移除key和value;

现已不推荐使用

参考

1.https://www.cnblogs.com/guanbin-529/p/11488869.html

2.https://blog.csdn.net/androidstarjack/article/details/106485213?utm_term=jsonlib不推荐使用&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allsobaiduweb~default-2-106485213&spm=3001.4430

Gitee地址

https://gitee.com/zhuayng/foundation-study.git

fastjson、jackson以及son-lib的使用的更多相关文章

  1. SpringBoot中使用Fastjson/Jackson对JSON序列化格式化输出的若干问题

    来源 :https://my.oschina.net/Adven/blog/3036567 使用springboot-web编写rest接口,接口需要返回json数据,目前国内比较常用的fastjso ...

  2. json工具包比较 fastjson jackson gson

    对json进行json-object进行相互转化时,笔者接触到三种工具jar,现对其进行比较. fastjson:速度最快,阿里巴巴开源. jackson:springMvc 默认使用. gson:谷 ...

  3. springmvc 用fasterxml.jackson返回son数据

    一,引入fasterxm.jackson包 <dependency> <groupId>com.fasterxml.jackson.core</groupId> & ...

  4. 【SpringMVC】从Fastjson迁移到Jackson,以及对技术选型的反思

    为什么要换掉fastjson 直接原因是fastjson无法支持注解形式的自定义序列化和反序列化,虽然其Github上的Wiki上说明是支持的.但是实测结果表明:Test类的序列化被fastjson的 ...

  5. jackson、fastjson、kryo、protostuff等序列化工具性能对比

    简介 实际项目中,我们经常需要使用序列化工具来存储和传输对象.目前用得比较多的序列化工具有:jackson.fastjson.kryo.protostuff.fst 等,本文将简单对比这几款工具序列化 ...

  6. jackson JsonPropertyOrder和@JsonIgnoreProperties注解

    有些时候,我们在和外部系统交互的时候使用了json作为标准的数据交换格式,同时为了安全性考虑,增加了对报文的校验,因此我们需要确保序列化的时候参数有序且不多不少刚好,因为对外的API不像后台和前端交互 ...

  7. springboot自定义消息转换器HttpMessageConverter Spring Boot - 使用Gson替换Jackson

    Jackson一直是springframework默认的json库,从4.1开始,springframework支持通过配置GsonHttpMessageConverter的方式使用Gson. 在典型 ...

  8. fastjson 过滤不需要序列化的属性

    JSON JSON英文全称为JavaScriptObject Natation,采用key:value键值对的方式存贮数据,与xml格式相比,JSON是一种轻量级的数据交换格式:不要被JavaScri ...

  9. 废弃fastjson!大型项目迁移Gson保姆级攻略

    前言 大家好,又双叒叕见面了,我是天天放大家鸽子的蛮三刀. 在被大家取关之前,我立下一个"远大的理想",一定要在这周更新文章.现在看来,flag有用了... 本篇文章是我这一个多月 ...

  10. JVM 性能调优实战之:使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码

    本文是<JVM 性能调优实战之:一次系统性能瓶颈的寻找过程> 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 提升到 20 (提升了 7 倍) ...

随机推荐

  1. Spring中的@Bean注解

    @Bean 基础概念 @Bean:Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理.产生这个Bean对象的方法Spring只会调用一次,随后这个 ...

  2. 第二十四个知识点:描述一个二进制m组的滑动窗口指数算法

    第二十四个知识点:描述一个二进制m组的滑动窗口指数算法 简单回顾一下我们知道的. 大量的密码学算法的大数是基于指数问题的安全性,例如RSA或者DH算法.因此,现代密码学需要大指数模幂算法的有效实现.我 ...

  3. docker学习:dockefile解析

    是什么 DockerFile 是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本 构建三部曲 编写Dockerfile文件 docker build docker run 文件什么样 ...

  4. Java中的对象、类、抽象类、接口的理解

    1.对象 对象是个具体的东西,有着明确的属性特征和行为特征. 例如:你手上牵着的女朋友或男朋友就是个具体的对象. 如图中的苏格兰折耳猫,特征是耳朵向下呈折叠状,有着具体的颜色(你看到的颜色),并且和其 ...

  5. MongoDB应用场景及选型

    1. MongoDB数据库定位 * OLTP数据库 * 原则上Oracle和MySQL能做得事情,MongoDB都能做(包括ACID事务) * 优点:横向扩展能力,数据量或并发量增加时候可以自动扩展 ...

  6. 合并区间(c++)

    L. 合并区间 内存限制:256 MiB 时间限制:1000 ms 标准输入输出 题目类型:传统 评测方式:文本比较 题目描述 给出n个闭区间,把其中有重叠的区间合并为一个区间. 例如,给出4个区间, ...

  7. [ python应用 ] python递归搜索文件,支持搜索多个文件,支持自定义处理动作

    写了一个PyQT界面的版本:https://github.com/LongchuanYu/pyqt_project PATH = r'E:\MyDocument\新しいフォルダー\' # 要搜索的目录 ...

  8. Samba服务器搭建与配置

    Samba服务简介Samba的起源:对于windows的网上邻居来讲,共享文件的方式用的是SMB和CIFS协议以及NETBIOS协议Linux/Unix之间用的是NFS协议. ​ 但是Linux和Wi ...

  9. react中关于create-react-app2里css相关配置

    先看 webpack.config.dev.js 里的相关代码: // style files regexes const cssRegex = /\.css$/; const cssModuleRe ...

  10. 运行flutter-填坑之旅

    运行flutter; 1.有一个问题,解决了好长时间 如果你安装了IntelliJ IDEA 2017.2.7 x64,运行flutter的时候报错,是因为IntelliJ IDEA 2017.2.7 ...