fastjson

为Redis配置自定义fastJson序列化工具类

梦想与她 提交于 2019-12-13 21:48:43
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> alibaba.fastjson内部已经提供了对Redis存储对象序列化的工具类GenericFastJsonRedisSerializer,但是该工具在反序列化时返回为Object,我们仿照GenericFastJsonRedisSerializer来自定义一个扩展的工具类,反序列化后自动转化为指定的java对象。 GenericFastJsonRedisSerializer 源码 package com.alibaba.fastjson.support.spring; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.parser.ParserConfig; import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.util.IOUtils; import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.data.redis.serializer.SerializationException; /**

一篇文章教你轻松使用fastjson

天涯浪子 提交于 2019-12-13 18:48:08
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 前言 只有光头才能变强。 文本已收录至我的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 格式的字符串,支持将

基于 fastjson的json对象的key和value 直接的复制

吃可爱长大的小学妹 提交于 2019-12-13 14:50:38
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 一般来说两个对象的属性复制用BeanUtil的 copyXXXPropter 方法 即可。 就可以达到这个效果了。 但是如果是 json 对象的复制呢? 这个方法就不适用了。(比如我想要复制的是 某个key 里面的jsonObject 的属性就不可以了) 没找到 有工具类写过这个,于是 自己写了 一个 import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import java.util.Map; /** * @version 1.0 * @Description: fastjson 属性复制 * @Author: oumin * @Date: 2019-12-13 11:30 */ public class JsonObjectCopyUtil { /** * json 对象的属性复制。浅复制 * 如果 target 存在了对应的key 那么就对其内容进行从source 里面复制。 * 如果 target 不存在对应的 key ,而 source里面有,则 从source里面取 出来 * @param source 被复制的员 * @param target 目标 */ public static void

Java替换(新增)JSON串里面的某个节点

自作多情 提交于 2019-12-13 11:36:22
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 替换JSON串里面的某个节点. 这里使用的是alibaba的fastjson,使用JSONObject解析替换,这里的key存在就会替换,不存在就新增 JSONObject object = JSONObject.parseObject(jsonString); object.put("name", "张三"); object.put("phone", "13512345678"); newJsonString = object.toJSONString(); 来源: oschina 链接: https://my.oschina.net/u/4131327/blog/3142552

fastJSON Deserialization List

你。 提交于 2019-12-12 18:25:05
问题 So sort of a build on from a previous question of mine. I am trying to save a blueprint, which is just a heap of settings for a gameobject/Entity. I'm now storing the components (And their settings) as a List < IEntityComponent > (IEntityComponent is the interface for any component) wrapped in a class called ComponentTable. I only want to serialize the list, and all the private stuff is not serialized, and is just for faster look ups (At the price of memory). This serializes properly and even

fastjson中用@JSONField格式化日期格式/指定日期属性的格式

无人久伴 提交于 2019-12-11 19:22:16
fastjson中用@JSONField格式化日期格式/指定日期属性的格式 1、Maven依赖 官网地址: https://search.maven.org/ 搜索fastjson implementation 'com.alibaba:fastjson:1.2.62' 2、格式设置 不进行设置的结果: [ { "id": "_nJV9G4Ba_INtUmkpZvy", "nickname": "xm", "password": "123456", "time": 1576368000000, "username": "xiaoming" } ] 第一种: @JSONField(format="yyyy-MM-dd HH:mm:ss") private Date time; 第二种: JSON.toJSONStringWithDateFormat(list,"yyyy-MM-dd HH:mm:ss");//list结果集 设置之后的结果: [ { "id": "_nJV9G4Ba_INtUmkpZvy", "nickname": "xm", "password": "123456", "time": "2019-12-15 08:00:00", "username": "xiaoming" } ] 第三种: 设置: JSONObject.DEFFAULT_DATE_FORMAT=

微信公众号开发教程02:获取access_token

安稳与你 提交于 2019-12-10 14:27:05
一、access_token简介 access_token是公众号接口调用的凭据,公众号调用各接口时均需使用access_token。 例如: 1)创建自定义菜单接口: https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN 2)获取素材列表接口: https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=ACCESS_TOKEN 3)获取用户基本信息接口: https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN 等等,这些接口的请求地址均需要一个ACCESS_TOKEN参数,该参数就需要调用获取access_token接口来获取 注意: 1)access_token有时效性,当前有效时间为7200秒,需要的存储空间为512个字符空间,需要注意的是,微信后期有可能会改这个access_token的过期时间 2)如果在布署中有多台业务逻辑服务器均在自己的程序中获取access_token,这将造成多次刷新access_token的情况,建议布署中通过一台中控服务器来统一获取

Spring MVC 4.x + fastjson 1.2.7,封装的List<?>参数

两盒软妹~` 提交于 2019-12-09 18:31:28
使用spring mvc,Controller参数传参时,参数为一个对象的,在执行请求的时候,可以传递json数据,然后spring会自动解析json数据,并封装到这个对象中。 比如下面这段代码: @RequestMapping(value = "json2Bean", consumes = "application/json", method = RequestMethod.POST) public CoreRole json2Bean(@RequestBody CoreRole role) { logger.info("【json2List测试】role = {}", role.toString()); return role; } 请求代码: $(function(){ var data = {"code":"2","roleName":"大哥"} $.ajax({ url:'/coreRole/json2Bean.do', data:JSON.stringify(data), type:'POST', dataType:'json', contentType: "application/json;charset=UTF-8", success:function(data){ alert(JSON.stringify(data)); }, error:function(){

SpringMVC3.2.x整合Fastjson与Controller单元测试

不羁的心 提交于 2019-12-09 18:09:38
SpringMVC与Fastjson整合相当简单,只要在pom引入fastjson包后,配置一下SpringMVC的messageConverter就可以使用了。 <mvc:annotation-driven content-negotiation-manager="contentNegotiationManager"> <mvc:message-converters register-defaults="true"> <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"></bean> </mvc:message-converters> </mvc:annotation-driven> <bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean"> <property name="mediaTypes" > <value> json=application/json xml=application/xml </value> </property> </bean> 但是如果在单元测试时

Dubbo 源码解读 —— 可支持序列化及自定义扩展

谁说胖子不能爱 提交于 2019-12-09 16:51:10
一、概述 ​ 从源码中,我们可以看出来。目前,Dubbo 内部提供了 5 种序列化的方式,分别为 fastjson、Hessian2、Kryo、fst 及 Java原生支持的方式 。 ​ 针对不同的序列化方式,对比内容如下: 名称 优点 缺点 Hessian 性能较好,多语言支持(推荐使用) Hessian的各版本兼容性不好,可能和应用使用的Hessian冲突,Dubbo内嵌了hessian3.2.1的源码 fastjson 纯文本,可跨语言解析,缺省采用FastJson解析 性能较差 kryo 速度快,序列化后体积小 跨语言支持较复杂 fst 兼容JDK序列化协议;序列化速度快;体积小; jdk Java原生支持;无需引入第三方类库; 性能较差 ​ 从成熟度上来说,Hessian 和 Java 相对成熟一些,可用于生产环境。 二、Dubbo serialization 实现 ​ 整体的代码结构比较清晰,按照不同类型的序列化方式,划分成了多个子模块。根据模块的名称,想必你也能够知道该模块是什么序列化方式。接下来,我们一一进行解读: 2.1 API 模块 ​ 他们的依赖关系如 UML 图库直接看出来,DataInput 和 DataOutput 接口类,主要是针对基本类型数据进行序列化和反序列化。ObjectInput 和 ObjectOutput 分别继承 DataInput 和