首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
fastjson 方案
2024-08-23
废弃fastjson!大型项目迁移Gson保姆级攻略
前言 大家好,又双叒叕见面了,我是天天放大家鸽子的蛮三刀. 在被大家取关之前,我立下一个"远大的理想",一定要在这周更新文章.现在看来,flag有用了... 本篇文章是我这一个多月来帮助组内废弃fastjson框架的总结,我们将大部分Java仓库从fastjson迁移至了Gson. 这么做的主要的原因是公司受够了fastjson频繁的安全漏洞问题,每一次出现漏洞都要推一次全公司的fastjson强制版本升级,很令公司头疼. 文章的前半部分,我会简单分析各种json解析框架的优劣,并给出
redis通过json方案存取对象com.alibaba.fastjson.JSONException: syntax error, expect
问题描述: redis基于json方案存取对象时报错:com.alibaba.fastjson.JSONException: syntax error, expect com.alibaba.fastjson.JSONException: syntax error, expect {, actual [, pos 0 记一次FastJSON和Jackson解析json时遇到的中括号问题 突然发现自己取值的时候写法不对: User jsonGetUser = JSON.parseObject(st
来自阿里的 json 解析方案 fastjson
说起Json 解析,有非常多方法,不管是出自Google 的Gson也好,还是来自其它的某某.想必大家都非常熟悉. 今日在github上闲逛.偶遇 一 json 解析库.看起来非常不错,据说是眼下最快的解析JOSN 方案.该东东为何神器,他就是来自于阿里团队的 fastjson. 为了方便起见,參考例如以下代码. 用maven 的同学就方便多了,直接双击打开你的pom.xml 文件,加入例如以下依赖 <dependency> <groupId>com.alibaba</gr
解决fastjson反序列化日期0000-00-00失败的方案
解决fastjson反序列化日期0000-00-00失败的方案 22 Jul 2016 一.案例场景复原 示例场景里涉及两个class:TestDemo.java, DateBeanDemo.java. // DateBeanDemo.java public class DateBeanDemo { /** * dateStr field with Date.class */ private Date dateStr; /** * Get dateStr <br> * * @return Re
一种简单,轻量,灵活的C#对象转Json对象的方案(续)
本文参考资料 一种简单,轻量,灵活的C#对象转Json对象的方案 [源码]Literacy 快速反射读写对象属性,字段 一段废话 之前我已经介绍了这个方案的名称为JsonBuilder,这套方案最大的好处在于它的灵活可扩展性上,所以我可以很方便的对他进行优化和扩展! 性能优化 JsonBuilder第一版对一般对象的是进行实时反射的,所以性能不会很好,所以我首先想到的是优化他的性能 看我前几天发表过一篇<[源码]Literacy 快速反射读写对象属性,字段>的文章,这东西的效率不错,用来代替反
基于STSdb和fastJson的磁盘/内存缓存
更新 1. 增加了对批量处理的支持,写操作速度提升5倍,读操作提升100倍 2. 增加了对并发的支持 需求 业务系统用的是数据库,数据量大,部分只读或相对稳定业务查询复杂,每次页面加载都要花耗不少时间(不讨论异步),觉得可以做一下高速缓存,譬如用nosql那种key/value快速存取结果 目的 这里不是要做一个大家都适用的磁盘/内存缓存库,这个做法,部分是展示STSdb的用法,部分是提供一个简单易用的解决方案. 磁盘/内存 为什么不用memcached或者AppFabric Cache这样的现
Gson 和 FastJson 性能测试
使用版本: compile 'com.google.code.gson:gson:2.7' compile 'com.alibaba:fastjson:1.2.17' 评测样板为一个People数组,People对象 中包含一个Food对象引用.各个字符串采用随机数模拟:尽量模拟列表请求数据. String mString = "abcdefghijklmnopqrstuvwxyz0123456789";Random mRandom = new Random(); public Lis
Java Hour 38 Weather ( 11 ) – fastjson
有句名言,叫做10000小时成为某一个领域的专家.姑且不辩论这句话是否正确,让我们到达10000小时的时候再回头来看吧. Hour 38 Java 中的 json 反序列化 其实就是所谓的json 转对象的问题,这里就要面临很多开源方案的选择了. 这里随便一搜有json-lib,fastjson 之类的,暂时也不需要比较它们的区别,先随便用其中的fastjson吧. 首先看下我们需要解析的json {"weatherinfo":{"city":"杭州&qu
一个基于STSdb和fastJson的磁盘/内存缓存
一个基于STSdb和fastJson的磁盘/内存缓存 需求 业务系统用的是数据库,数据量大,部分只读或相对稳定业务查询复杂,每次页面加载都要花耗不少时间(不讨论异步),觉得可以做一下高速缓存,譬如用nosql那种key/value快速存取结果 目的 这里不是要做一个大家都适用的磁盘/内存缓存库,这个做法,部分是展示STSdb的用法,部分是提供一个简单易用的解决方案. 磁盘/内存 为什么不用memcached或者AppFabric Cache这样的现成解决方案呢?因为业务要缓存的内存或大或小,小的
fastjson升级版本遇到的问题
前面的话: 有关阿里的fastjson升级时遇到的问题,链接如下 https://github.com/alibaba/fastjson/wiki/enable_autotype 我要说的,是我碰到这个问题时的一些处理 1.问题描述: 我所在的项目组是使用的微服务架构,我们组只负责我们自有模块,其他模块由其他团队负责,有一天,看到一条新闻说是fastjson修复了一些高危漏洞,然后我们就协定升版本,然后今天就踩到了这个坑,报错如下: com.alibaba.fastjson.JSONExcept
【问题排查】fastjson线上排坑记
前言 版本上线时发现fastjson的toString方法的返回的字符串与与之前版本的toString方法返回的字符串不相同,这导致依赖toString进行md5计算所得到的结果不相同,更进一步导致其他依赖该md5值的插件发现和之前的md5值不相等而重启,导致数据存在丢失情况. 源码 从项目中抽取出该模块代码,并进行了适当修改,但未改变整个处理逻辑,源码如下. package main; import com.alibaba.fastjson.JSONObject; import java.se
SpringMVC底层数据传输校验的方案(修改版)
团队的项目正常运行了很久,但近期偶尔会出现BUG.目前观察到的有两种场景:一是大批量提交业务请求,二是生成批量导出文件.出错后,再执行一次就又正常了. 经过跟踪日志,发现是在Server之间进行json格式大数据量传输时会丢失部分字符,造成接收方拿到完整字符串后不能正确解析成json,因此报错. 同其他团队同事们沟通后发现,不仅仅是我们项目有这个问题,我们不是一个人在战斗. 1 问题现象 服务器之间使用http+json的数据传输方案,在传输过程中,一些json数据发生错误,导致数据接收方解析j
SpringMVC底层数据传输校验的方案
团队的项目正常运行了很久,但近期偶尔会出现BUG.目前观察到的有两种场景:一是大批量提交业务请求,二是生成批量导出文件.出错后,再执行一次就又正常了. 经过跟踪日志,发现是在Server之间进行json格式大数据量传输时会丢失部分字符,造成接收方拿到完整字符串后不能正确解析成json,因此报错. 同其他团队同事们沟通后发现,不仅仅是我们项目有这个问题,我们不是一个人在战斗. 1 问题现象 服务器之间使用http+json的数据传输方案,在传输过程中,一些json数据发生错误,导致数据接收方解析j
用自定义注解实现fastjson序列化的扩展
这篇文章起源于项目中一个特殊的需求.由于目前的开发方式是前后端分离的,基本上是通过接口提供各个服务. 而前两天前端fe在开发中遇到了一些问题:他们在处理字符串类型的时间时会出现精度丢失的情况,所以希望后台是以时间戳的形式返回给前端.而与此同时后台的设计是这个样子的:所有的时间在数据库中均保存为varchar类型,在序列化的时候也是按String字符串去处理的. 这样一来就需要一些解决方案: 1. 所有数据库的时间字段都用timestamp替换,这个是最简单确实实现代价最高的一种方案,由于数据库表
Android 代码混淆 混淆方案
本篇文章:自己在混淆的时候整理出比较全面的混淆方法,比较实用,自己走过的坑,淌出来的路.请大家不要再走回头路,可能只要我们代码加混淆,一点不对就会导致项目运行崩溃等后果,有许多人发现没有打包运行好好地,打包完成以后而又不不可以了,导致了许多困惑,本片文章来问大家解决困惑,希望对大家有帮助. Android混淆最佳实践 1. 混淆配置 android{ buildTypes { release { buildConfigField "boolean", "LOG_DEBUG&q
Spring使用fastjson处理json数据
1.搭建SpringMVC+spring环境 2.配置web.xml以及springmvc-config.xml,web.xml同Spring使用jackson处理json数据一样,Springmvc-config.xml有些许差别.Spring默认配置使用Jackson,如果要使用fastjson则需要配置HttpMessageConverter. <?xml version="1.0" encoding="UTF-8"?> <beans xml
fastjson 反序列化漏洞利用总结
比赛遇到了,一直没利用成功,这里做个记录. 环境搭建 首先用 vulhub 搭建 fastjson 的漏洞环境. 漏洞环境程序的逻辑为接收 body 的数据然后用 fastjson 解析. 漏洞利用 首先我们需要确认是否存在漏洞,可以采取让服务器发请求到我们的公网 vps POST / HTTP/1.1 Host: 192.168.245.128:8080 Pragma: no-cache Cache-Control: no-cache Upgrade-Insecure-Requests: 1
FastJson遇见的问题或项目实战中优化的问题,看源码都可以解决
1:感觉见鬼了一般存储JSONObject中的字段竟然不见了? JSONObject object=new JSONObject(); Map fields = new HashMap(); fields.put("1","1"); object.put("fields",fields); System.out.println(object.toString()); JSONObject newFields = object.getJSONObj
使用FASTJSON做反序列化的时间格式处理
JSONObject.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.mmm"; Productorder tmp1 = JSONObject.parseObject(tmp.toJSONString(), Productorder.class); 方案2:新增date反序列化解析器 主要思路是以fastjson原生的DateDeserializer.class为基础,定制化一个可以解析0000-00-00的日期反序列化解析器.该方式是fas
spring mvc如何优雅的使用fastjson
1. 在spring mvc中配置fastjson <!-- 设置配置方案 --> <mvc:annotation-driven> <!-- 设置不使用默认的消息转换器 --> <mvc:message-converters register-defaults="false"> <!-- 配置Spring的转换器, 字符编码 --> <bean class="org.springframework.http.c
JSON不对称反序列化映射方案
源码Git地址: https://github.com/git-simm/simm-framework.git (欢迎大家提交优化代码 ^_^) 一.业务场景 公司先有业务系统,后来觉得需要抽离公共的底层权限服务.再加上之前的业务对象命名不规范,这次想要一次搞定.面对这种场景,摆在我面前的有三套方案. 用底层权限服务提供的数据格式,把业务代码中不规范的引用都改一遍.影响面实在太广,放弃: 加一个数据适配层,从底层权限服务请求到json数据,定义一套匹配的pojo类型进行接收.之后再用适配方法,进
热门专题
怎么用springboot写注册
hivesql limit的优先级
linux root占用空间大
centos 64 位镜像
遍历 siblings 子元素
远程电脑复制文件或文件夹时出错
努比亚z5minitwrprecovery模式下载
.net缓存的几种方式
VS如何更改附加包含目录
nordic 合并全部文件升级包
CMS什么时候fullgc
memcpy如何将四字节数据拷贝给int
android 多个ACTIVITY共用一个蓝牙连接
vb实现strconv每次生成的 都相同
华为模拟器无法启动路由器41
cadence pspice仿真教程下载
php curl headers cookie 无效
UWB技术在室内定位
android Activity切换动画
AlertDialog禁止返回关闭