fastjson使用

springboot 项目整合fastjson:javabean对象、Json 字符串、字符串 与 Json 对象的转化;Json的其他问题

心不动则不痛 提交于 2019-12-18 05:10:46
文章目录 前言 一、测试前准备 1. maven依赖 2. User类(Java对象) 二、JSON的互相转换 1. Java 对象转换到 Json对象 2. json 字符串转换成Json 对象 3. Json字符串转换至Java对象 4. map 集合转换为 Json 对象 5. 遍历JSONArray 三、JSON的其他问题 1. JSON作为Get请求方法的参数 前言 做项目的时候,遇到了好多关于Json转化的问题,比如 java 对象、Json 字符串 与 Json对象的互相转化 Json 对象做Get请求参数的编码问题 等等,以后再遇到什么问题,我再继续补充,实时更新。。。 原来每次遇到都要现找资料,这次做个笔记,总结一下。 我以springboot项目进行测试。 一、测试前准备 1. maven依赖 <!--fastjson--> < dependency > < groupId > com.alibaba </ groupId > < artifactId > fastjson </ artifactId > < version > 1.2.12 </ version > </ dependency > <!--junit 测试单元--> < dependency > < groupId > junit </ groupId > < artifactId >

JSON 之FastJson解析

别说谁变了你拦得住时间么 提交于 2019-12-17 03:47:11
一、阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征: 速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson; 功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Android;开源 (Apache 2.0) Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。 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 parseObject(String text, Class clazz); // 把JSON文本parse为JavaBean public static final JSONArray parseArray(String text); //

使用fastjson对json串和对象的转换

廉价感情. 提交于 2019-12-16 13:35:37
String转对象,数组 1 String json = "{\"code\":\"200\",\"data\":{\"total\":4,\"list\":[{\"createBy\":\"admin\",\"createTime\":\"2019-09-16 10:18:47\",\"id\":2,\"params\":{},\"ruleName\":\"规则1\",\"workBegintime\":\"08:00:00\",\"workEndtime\":\"09:00:00\",\"workoffBegintime\":\"18:00:00\",\"workoffEndtime\":\"19:00:00\"},{\"createBy\":\"admin\",\"createTime\":\"2019-09-16 17:27:15\",\"id\":5,\"params\":{},\"ruleName\":\"考勤test2\",\"workBegintime\":\"07:00:00\",\"workEndtime\":\"08:20:35\",\"workoffBegintime\":\"17:20:35\",\"workoffEndtime\":\"18:20:35\"}]}}"; 2 String json2 = "[{\"第0名\":0},{\"第1名\":1},

fastJson与jackson性能对比

半世苍凉 提交于 2019-12-16 13:09:32
最近项目用到fastJson和jackson,为了决定到底弃用哪个,随手写了个测试看看到底谁的性能更胜一筹。 看到过很多对比的帖子,大多数结果是fastJson性能高于jackson,可偏偏像SpringMVC这样成熟的框架默认也采用的jsckson,这就引起了我的怀疑,决定自己动手试试 1、开始测试,用一个map往里面装10万个键值对,结果jackson速度快于fastjson,jackson大约只用了fastjson一半的时间 2、这次我们把ObjectMapper实例化部分也纳入计时,这次情况有变化了,fastJson明显比jsckson快了,请看代码(ObjectMapper实例化放到endTime下面) 根据上面的测试可以初步得出一个结论,jackson的ObjectMapper实例化是一个性能瓶颈,如果提前准备好实例会比fastJson要快一倍左右,随后我打开ObjectMapper构造方法看了下,确实比较繁琐,因此在实际应用中我们转json字符串的时候应当使用同一个ObjectMapper实例,避免每次手动去new新的实例,而FastJson是用静态方法(JSONObject.toJSONString())因此我们在常规使用的时候不方便像jsckson那样把实例提前准备好。 来源: CSDN 作者: 程序猿-Allen 链接: https://blog.csdn

一篇文章教你轻松使用fastjson

﹥>﹥吖頭↗ 提交于 2019-12-14 03:40:26
前言 只有光头才能变强。 文本已收录至我的GitHub精选文章,欢迎Star : https://github.com/ZhongFuCheng3y/3y JSON 相信大家对他也不陌生了,前后端交互中常常就以 JSON 来进行 数据交换 。而有的时候,我们也会将 JSON 直接保存在数据库中。 可能就有人不太理解,为什么要将JSON保存在关系型数据库中? 我在最开始的时候也有类似的疑惑,问了几个同事,得出的结论都差不多: 方便扩展 ,如果那些字段 不需要用到索引 ,改动比较频繁,你又不想改动表的结构,那就可以在数据库中存入 JSON 虽说存 JSON 会方便扩展,但如果你的 MySQL 版本还是相对较低的话,想要 用SQL查 JSON 里某个属性 ,还是比较麻烦的。 并且从数据库里边取出来也仅仅是一个 String ,而想要操作 JSON 里边的属性,自己写不太方便,所以就有 fastjson 给我们去用。 这篇文章简单讲讲 fastjson 的使用,希望对大家有帮助。 如果有帮助,给我点个赞呀! 一、fastjson入门 以下内容来源: https://github.com/alibaba/fastjson/wiki/Quick-Start-CN 它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到

Gson/Jackson/FastJson工具类

梦想与她 提交于 2019-12-05 22:37:12
import java.util.ArrayList; import java.util.List; import java.util.Map; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonParser; import com.google.gson.reflect.TypeToken; public class GsonUtil { //不用创建对象,直接使用Gson.就可以调用方法 private static Gson gson = null; //判断gson对象是否存在了,不存在则创建对象 static { if (gson == null) { //gson = new Gson(); //当使用GsonBuilder方式时属性为空的时候输出来的json字符串是有键值key的,显示形式是"key":null,而直接new出来的就没有"key":null的 gson= new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();

fastjson带泛型反序列化的用法

ⅰ亾dé卋堺 提交于 2019-12-05 00:06:01
这个问题之前就遇到了,虽然猜到有现成解决办法,但是一直没有正面解决,今天找到了解决方案,mark一下。 主要就是一个TypeReference的使用。 直接上代码比较容易看懂。 1.泛型 public class PageEntity<T> { private List<T> result; public List<T> getResult() { return result; } public void setResult(List<T> result) { this.result = result; } } 这是一个示例的模板类 2. 反序列化 String json = readToString(new File(getRoodDir() + "kw.json")); PageEntity<CaterEsSource> pageEntity = JSON.parseObject(json, new TypeReference<PageEntity<CaterEsSource> >(){}); CaterEsSource试自定义的一个类。 代码自己应该说的很清楚了。 参考博客: https://www.jianshu.com/p/0dc13273e931 来源: https://www.cnblogs.com/betterwgo/p/11890238.html

fastJson 常用API使用

旧城冷巷雨未停 提交于 2019-12-04 18:28:16
1、Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。 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

Fastjson对复杂对象进行序列化

倖福魔咒の 提交于 2019-12-04 08:17:11
一、什么是fastjson fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。 二、fastjson的优点 2.1 速度快 fastjson相对其他JSON库的特点是快,从2011年fastjson发布1.1.x版本之后,其性能从未被其他Java实现的JSON库超越。 2.2 使用广泛 fastjson在阿里巴巴大规模使用,在数万台服务器上部署,fastjson在业界被广泛接受。在2012年被开源中国评选为最受欢迎的国产开源软件之一。 2.3 测试完备 fastjson有非常多的testcase,在1.2.11版本中,testcase超过3321个。每次发布都会进行回归测试,保证质量稳定。 2.4 使用简单 fastjson的API十分简洁。 String text = JSON.toJSONString(obj); //序列化 VO vo = JSON.parseobject("{...}", VO.class); //反序列化 2.5 功能完备 支持泛型,支持流处理超大文本,支持枚举,支持序列化和反序列化扩展。 三、下载和使用 你可以在maven中央仓库中直接下载: Http://repo1.maven.org/maven2/com/alibaba

FastJson稍微使用不当就会导致StackOverflow

谁说胖子不能爱 提交于 2019-12-04 06:12:58
摘自: https://www.cnblogs.com/hollischuang/p/11832947.html FastJson稍微使用不当就会导致StackOverflow GitHub 9.4k Star 的Java工程师成神之路 ,不来了解一下吗? GitHub 9.4k Star 的Java工程师成神之路 ,真的不来了解一下吗? GitHub 9.4k Star 的Java工程师成神之路 ,真的确定不来了解一下吗? 对于广大的开发人员来说,FastJson大家一定都不陌生。 FastJson(https://github.com/alibaba/fastjson)是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。 它具有速度快、使用广泛、测试完备以及使用简单等特点。但是,虽然有这么多优点,但是不代表着就可以随便使用,因为如果使用的方式不正确的话,就可能导致StackOverflowError。而StackOverflowError对于程序来说是无疑是一种灾难。 笔者在一次使用FastJson的过程中就遇到了这种情况,后来经过深入源码分析,了解这背后的原理。本文就来从情景再现看是抽丝剥茧,带大家看看坑在哪以及如何避坑。 缘由 FastJson可以帮助开发在Java