fast json 乱序问题解决过程

解决问题:保存到redis中的jsonstring在转回jsonObject的时候乱序;

解决方案:https://inlhx.iteye.com/blog/2312512

解决过程:

1 看fastjson的源码。

下载了fastjson源码,使用Linux命令解压:jar xvf fastjson-1.2.9-sources.jar

导入到IDE中查看。

2 注解 @target @Retention

@target 作用对象

@Retention 描述注解的生命周期

取值(RetentionPoicy)有:

1.SOURCE:在源文件中有效(即源文件保留)
2.CLASS:在class文件中有效(即class保留)
3.RUNTIME:在运行时有效(即运行时保留)

使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口,由编译程序自动完成其他细节。

参考该博客:https://www.cnblogs.com/gmq-sh/p/4798194.html

3 了解 @SuppressWarnings(“unchecked”)

fast json 乱序问题解决过程
  1. deprecation 使用了不赞成使用的类或方法时的警告
  2. unchecked 执行了未检查的转换时的警告,例如当使用集合时没有用泛型 (Generics) 来指定集合保存的类型。
  3. fallthrough 当 Switch 程序块直接通往下一种情况而没有 Break 时的警告。
  4. path 在类路径、源文件路径等中有不存在的路径时的警告。
  5. serial 当在可序列化的类上缺少 serialVersionUID 定义时的警告。
  6. finally 任何 finally 子句不能正常完成时的警告。 7.all 关于以上所有情况的警告。

4 开始看json.parse源码

@SuppressWarnings("unchecked")
    public static  T parseObject(String text, Class clazz, Feature... features) {
        return (T) parseObject(text, (Type) clazz, ParserConfig.global, DEFAULT_PARSER_FEATURE, features);
    }

fast json 乱序问题解决过程

fast json 乱序问题解决过程

Original: https://www.cnblogs.com/xlli/p/10669236.html
Author: 梨小落是个小疯子
Title: fast json 乱序问题解决过程

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/607784/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 微服务SpringCloud之GateWay路由

    在前面博客学习了网关zuul,今天学下spring官方自带的网关spring cloud gateway。Zuul(1.x) 基于 Servlet,使用阻塞 API,它不支持任何长…

    Java 2023年5月30日
    078
  • 并发编程基础(上)

    从我开始写博客到现在,已经写了不少关于并发编程的了,差不多还有一半内容整个并发编程系列就结束了,而今天这篇博客是比较简单的,只是介绍下并发编程的基础知识( = =!其实,对于大神来…

    Java 2023年6月5日
    098
  • RabbitMQ——整合SpringAMQP

    一。什么是Spring-AMQP? 1.Spring框架的AMQP消息解决方案,提供模板化的发送和接收消息的抽象层,提供基于消息驱动的POJO(Plain Ordinary Jav…

    Java 2023年5月30日
    082
  • Java工程师的核心竞争力

    Java工程师的核心竞争力软实力业务理解,对自己所处的业务有比较深刻的理解。主动去熟悉一个领域内的业务知识,这其实对后续需求的开发更有利。明确自己所做的事情对整个业务的影响,清楚当…

    Java 2023年5月29日
    073
  • AQS学习(一)自旋锁原理介绍(为什么AQS底层使用自旋锁队列?)

    1.什么是自旋锁? 自旋锁作为锁的一种,和互斥锁一样也是为了在并发环境下保护共享资源的一种锁机制。在任意时刻,只有一个执行单元能够获得锁。 互斥锁通常利用操作系统提供的线程阻塞/唤…

    Java 2023年6月8日
    075
  • 手下两个应届生:一个踏实喜欢加班,一个技术强挑活,怎么选??

    ​点击蓝色”程序员黄小斜”关注我哟 加个”星标”,每天和你一起多进步一点点! 本文来源 | 程序员求职面试(ID:CoderJob)…

    Java 2023年6月8日
    097
  • python2的utf8编码问题

    Python中中文出现错误:SyntaxError: Non-ASCII character xxx in file x 在文件头部添加: #!/usr/bin/python -*…

    Java 2023年6月5日
    060
  • Linux下用Docker部署接口安全的运行环境

    背景:MySQL 数据库运行在宿主机上(Linux) 需求:Redis、服务、页面分别运行在独立的docker中,并处于同一网络,容器内部重要目录要挂载在物理目录,保证数据安全 方…

    Java 2023年6月8日
    096
  • Nginx: 解决反代时,超过1分钟Gateway Timeout 504问题

    打开Nginx的配置文件中,在对应的反代域名下,添加 proxy_connect_timeout 300;proxy_send_timeout 300;proxy_read_tim…

    Java 2023年5月30日
    080
  • 5分钟快速搭建一个springboot的项目

    现在开发中90%的人都在使用springboot进行开发,你有没有这样的苦恼,如果让你新建一个springboot开发环境的项目,总是很苦恼,需要花费很长时间去调试。今天来分享下如…

    Java 2023年6月9日
    076
  • 学习资料

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月6日
    073
  • 网关Zuul、Gateway、nginx的区别

    zuul:是Netflix的,早期在微服务中使用较广泛,是基于servlet实现的,阻塞式的api,不支持长连接。只能同步,不支持异步。不依赖spring-webflux,可以扩展…

    Java 2023年5月30日
    077
  • Nginx location匹配规则

    url匹配规则 = : 表示精确匹配后面的url ~ : 表示正则匹配,但是区分大小写 ~* : 正则匹配,不区分大小写 ^~ : 表示普通字符匹配,如果该选项匹配,只匹配该选项,…

    Java 2023年5月30日
    090
  • 难道你还不知道Spring之事务的回滚和提交的原理吗,这篇文章带你走进源码级别的解读。

    上一篇文章讲解了获取事务,并通过获取的connection设置只读,隔离级别等;这篇文章讲事务剩下的回滚和提交。 之前已经完成了目标方法运行前的事务准备工作。而这些准备工作的最大目…

    Java 2023年6月7日
    081
  • shiro AuthenticationToken体系

    shiro AuthenticationToken体系 如上图,为AuthenticationToken的继承体系,AuthenticationToken是在shiro进行身份验证…

    Java 2023年6月7日
    095
  • 240_Springboot整合rabbitmq集群配置详解

    引入starter 详细配置 Spring AMQP的主要对象 使用 引入starter org.springframework.boot spring-boot-starter-…

    Java 2023年6月7日
    0114
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球