fastjson使用

json解析:[2]fastjson 使用

一笑奈何 提交于 2019-12-02 05:25:35
利用阿里的fastjson包对对象进行 json的转化与解析,本篇为第二篇,第一篇讲述的是利用gson进行json数据解析,地址:jingyan.baidu.com/article/e8cdb32b619f8437042bad53.html 常用类型 类型一:JavaBean 类型二:List<JavaBean> 类型三:List<String> 类型四:List<Map<String,Object>> 将上面的四种数据对象转换成json字符串的方法都是一样的 String jsonString = JSON.toJSONString(obj); 工具/原料 fastjson.jar下载地址 pan.baidu.com/s/1i3ysuaD 方法/步骤 1 将json字符串转化成JavaBean对象 Person person = new Person("1","fastjson",1); //这里将javabean转化成json字符串 String jsonString = JSON.toJSONString(person); //这里将json字符串转化成javabean对象, person =JSON.parseObject(jsonString,Person.class); 2 将json字符串转化成List<JavaBean>对象 Person person1 = new

SpringBoot整合FastJson(七)

て烟熏妆下的殇ゞ 提交于 2019-12-01 12:29:03
一、Maven依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.33</version> </dependency> 二、配置类 1 @Configuration 2 public class WebMvcConfig implements WebMvcConfigurer { 3 ​ 4 ​ 5 ​ 6 ​ 7 /** 8 * 使用fastjson代替jackson 9 * 10 * @param 11 */ 12 ​ 13 @Override 14 public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { 15 configurer.enable(); 16 } 17 ​ 18 @Override 19 ​ 20 public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { 21 ​ 22 /* 23 先把JackSon的消息转换器删除. 24 备注: (1)源码分析可知,返回json的过程为: 25

springboot升级2.0+ 整合fastjson

和自甴很熟 提交于 2019-12-01 10:09:45
SpringBoot2.0如何集成fastjson?在网上查了一堆资料,但是各文章的说法不一,有些还是错的,可能只是简单测试一下就认为ok了,最后有没生效都不知道。恰逢公司项目需要将JackSon换成fastjson,因此自己来实践一下SpringBoot2.0和fastjson的整合,同时记录下来方便自己后续查阅。 一、Maven依赖说明   SpringBoot的版本为: <version> 2.1.4.RELEASE</version>    在pom文件中添加fastjson的依赖: <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.60/version> </dependency> 二、整合   整合之前,我们先说下springboot1.0的方法,轻车熟路的去自定了一个 SpringMvcConfigure 去继承 WebMvcConfigurerAdapter ,然后你就发现这个 WebMvcConfigurerAdapter 竟然过时了?what?点进去看源码: 1 /** 2 * An implementation of {@link WebMvcConfigurer} with empty methods allowing 3 *

使用fastjson中遇到的两个问题$ref

こ雲淡風輕ζ 提交于 2019-12-01 06:12:30
fastjson出现$ref 是由于循环引用引起的,比方说返回的json对象为空,而你要去引用对象的属性,这时候就无法获得了,会出现这样的引用标识,可以这样解决JSONObject.toJSONString(content, SerializerFeature.DisableCircularReferenceDetect, SerializerFeature.WriteMapNullValue);去避免循环引用的探测。 循环引用 很多场景中,我们需要序列化的对象中存在循环引用 fastjson中序列化对象时不想返回对象的一些属性: 将对象转换成json格式的时候,常常需要排除一些字段(例如延迟加载的字段)。在fastjson库中,我们可以使用SimplePropertyPreFilter忽略掉这些属性。 SimplePropertyPreFilter filter = new SimplePropertyPreFilter(); filter .getExcludes().add( "name" ); String result = JSONObject.toJSONString(object, filter ); //object是Java对象 或是在字段上添加 transient 关键字, 例如: private transient String ignore,

fastjson SerializerFeature详解

醉酒当歌 提交于 2019-11-30 01:04:52
SerializerFeature属性 名称 含义 备注 QuoteFieldNames 输出key时是否使用双引号,默认为true UseSingleQuotes 使用单引号而不是双引号,默认为false WriteMapNullValue 是否输出值为null的字段,默认为false WriteEnumUsingToString Enum输出name()或者original,默认为false UseISO8601DateFormat Date使用ISO8601格式输出,默认为false WriteNullListAsEmpty List字段如果为null,输出为[],而非null WriteNullStringAsEmpty 字符类型字段如果为null,输出为”“,而非null WriteNullNumberAsZero 数值字段如果为null,输出为0,而非null WriteNullBooleanAsFalse Boolean字段如果为null,输出为false,而非null SkipTransientField 如果是true,类中的Get方法对应的Field是transient,序列化时将会被忽略。默认为true SortField 按字段名称排序后输出。默认为false WriteTabAsSpecial 把\t做转义输出,默认为false 不推荐

java对象转为json字符串

北城以北 提交于 2019-11-29 15:49:39
1.使用fastjson开源json工具类库 2.java类未添加get()和set()方法,java对象初始化时,使用fastjson解析,得到的json字符串有时为空{} 3.Java对象转为json字符串,初始化时最好添加get()和set()方法,避免错误 来源: https://www.cnblogs.com/cty136/p/11521264.html

除了FastJson,你还有选择: Gson简易指南

帅比萌擦擦* 提交于 2019-11-29 08:29:37
前言 这个周末被几个技术博主的同一篇公众号文章 fastjson又被发现漏洞,这次危害可导致服务瘫痪! 刷屏,离之前漏洞事件没多久,fastjson 又出现严重 Bug。目前项目中不少使用了 fastjson 做对象与JSON数据的转换,又需要更新版本重新部署,可以说是费时费力。与此同时,也带给我新的思考,面对大量功能强大的开源库,我们不能盲目地引入到项目之中,众多开源框架中某个不稳定因素就足以让一个项目遭受灭顶之灾。趁着周末,在家学习下同样具备JSON与对象转换功能的优秀开源框架 Gson,并且打算将今后项目使用 fastjson 的地方逐渐换成使用 Gson,记录下学习总结的内容,希望对小伙伴也有所帮助。 本文所涉及所有代码片段均在下面仓库中,感兴趣的小伙伴欢迎参考学习: https://github.com/wrcj12138aaa/gson-actions 版本支持: JDK 8 Gson 2.8.5 JUnit 5.5.1 Lomok 1.18.8 Gson 简介 在正式介绍 Gson 之前,我们可以先从 官方的wiki 看下 Gson 的描述,了解它是什么? Gson is a Java library that can be used to convert Java Objects into their JSON representation. It can also

FastJson---高性能JSON开发包

自古美人都是妖i 提交于 2019-11-28 19:30:14
Fastjson介绍 Fastjson是一个Java语言编写的JSON处理器,由阿里巴巴公司开发。 1、遵循 http://json.org 标准,为其官方网站收录的参考实现之一。 2、功能qiang打,支持JDK的各种类型,包括基本的JavaBean、Collection、Map、Date、Enum、泛型。 3、无依赖,不需要例外额外的jar,能够直接跑在JDK上。 4、开源,使用Apache License 2.0协议开源。 http://code.alibabatech.com/wiki/display/FastJSON/Home 5、具有超高的性能, java世界里没有其他的json库能够和fastjson可相比了。 如果获得Fastjson? SVN: http://code.alibabatech.com/svn/fastjson/trunk/ WIKI: http://code.alibabatech.com/wiki/display/FastJSON/Home Issue Tracking: http://code.alibabatech.com/jira/browse/FASTJSON 如果你使用了Maven,maven repository配置如下: <repository> <id>opensesame</id> <name>Alibaba

fastJson与jackson性能对比

三世轮回 提交于 2019-11-28 17:55:14
转载:https://blog.csdn.net/u013433821/article/details/82905222 最近项目用到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()

【Java】各个JSON技术的比较

♀尐吖头ヾ 提交于 2019-11-28 09:17:15
一 、各个JSON技术的简介和优劣 1. json-lib json-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包,包括commons-beanutils.jar,commons-collections-3.2.jar,commons-lang-2.6.jar,commons-logging-1.1.1.jar,ezmorph-1.0.6.jar,对于复杂类型的转换,json-lib对于json转换成bean还有缺陷,比如一个类里面会出现另一个类的list或者map集合,json-lib从json到bean的转换就会出现问题。 json-lib在功能和性能上面都不能满足现在互联网化的需求。 2. 开源的Jackson 相比json-lib框架,Jackson所依赖的jar包较少,简单易用并且性能也要相对高些。 而且Jackson社区相对比较活跃,更新速度也比较快。 Jackson对于复杂类型的json转换bean会出现问题,一些集合Map,List的转换出现问题。 Jackson对于复杂类型的bean转换Json,转换的json格式不是标准的Json格式 3. Google的Gson Gson是目前功能最全的Json解析神器,Gson当初是为因应Google公司内部需求而由Google自行研发而来,