Fastjson序列化map时,保留map的进出栈顺序的方法

最近工作中遇到了这样的需求:

我用fastjson序列有序map的时候,tojson方法会让这个map无序,tojsonstring虽然能保留map的结构,不过会让结果里含有\(我是jsonStrin套jsonString,java会出现转义字符)

解决方案JSONObject有个传入boolean值的构造函数

如果传入的是true就代表保留数据结构的顺序

这时候我们可以吧要序列化的map放到我们创建的JSONObject对象里

最后再把我们的JSONObject对象放到最终的结果里

代码示例

JSONObject jsonObject = new JSONObject(true);

jsonObject.put(“key”, 你的map对象);

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-11 00:45:11

Fastjson序列化map时,保留map的进出栈顺序的方法的相关文章

Jvm(9),运行时数据---独占区---虚拟机栈

一,总览 Java Virtual Machine Stacks,线程私有,生命周期与线程相同,描述的是Java方法执行的内存模型:每一个方法执行的同时都会创建一个栈帧(Stack Frame),由于存储局部变量表.操作数栈.动态链接.方法出口等信息.每一个方法的执行就对应着栈帧在虚拟机栈中的入栈,出栈过程. 我们来看一个例子 public class Demo3 { public void test1() { System.out.println("我是test1的方法"); tes

FastJson序列化时过滤字段(属性)的方法

FastJson序列化时(即转成JSON字符串时),可以过滤掉部分字段,或者只保留部分字段,方法有很多,下面举一些常用的方法. 方法一.FastJson的注解 1 @JSONField(serialize = false) 2 private String name; 最便捷,直接在实体的字段上加FastJson的注解serialize = false,转JSON字符串时就不会有该字段. 方法二.JAVA关键字 1 @JSONField(name = "AGE") 2 private

FastJson序列化时忽略特定属性

在之前的工作中,一直用jackson来处理json串转换的问题,有些时候我们经常有忽略某些属性的情况,个人比较习惯jackson的注解的方式,而且也是比较灵活的,分别提供了@JsonIgnoreProperties,@JsonIgnore等. 而FastJson中,并没有提供类似的方式,而是提供了各种filter机制来实现的,具体可以参考:https://github.com/alibaba/fastjson/wiki/%E5%AE%9A%E5%88%B6%E5%BA%8F%E5%88%97%E

【GoLang笔记】遍历map时的key随机化问题及解决方法

之前的一篇笔记曾分析过,Go的map在底层是用hashmap实现的.由于高效的hash函数肯定不是对key做顺序散列的,所以,与其它语言实现的hashmap类似,在使用Go语言map过程中,key-value的插入顺序与遍历map时key的访问顺序是不相同的.熟悉hashmap的同学对这个情况应该非常清楚. 所以,本文要提到的肯定不是这个,而是一个比较让人惊奇的情况,下面开始说明. 1. 通过range遍历map时,key的顺序被随机化 在golang 1.4版本中,借助关键字range对Go语

Mybatis将结果放入map时别名不是驼峰形式

查询时如果给字段起别名,并且将查询结果映射到一个Map,那么Map的key将是忽略大小写的.映射到一个实体类是没这个问题的. state as addState 从Map中取值时应该:map.get("addstate"); 如果非要用驼峰写法可以这样:state as "addState",在别名外面加个双引号. 原文地址:https://www.cnblogs.com/liycode/p/9319303.html

mybatis返回集合类型为map时

Mybatis返回值为map时 使用条件:当映射属性超出了一个Bean时: 第一步: 第二步: 第三步: 此方式只能当返回值为lIst集合时. 原文地址:https://www.cnblogs.com/xiaofengshan/p/12347989.html

Java 遍历Map时 删除元素

1 package net.nie.test; 2 3 import java.util.HashMap; 4 import java.util.Iterator; 5 import java.util.Map; 6 7 public class HashMapTest { 8 private static Map<Integer, String> map=new HashMap<Integer,String>(); 9 10 /** 1.HashMap 类映射不保证顺序:某些映射

Mybatis select返回值为map时,选取表字段的两列作为key,value

项目需要从ibatis升级到MyBatis,dao中有一个方法返回Map类型,具体是查询语句查询两个字段,将结果列表字段A的值作为key字段B的值作为value存入Map中作为结果返回: ibatis中Dao继承SqlMapClientDaoSupport类的queryForMap(String statement, Object param, String key, String value)方法可直接实现: MyBatis的SqlSession中只有selectMap(String stat

springboot中处理mybatis返回Map时key值的大小写

为了统一不同数据库返回key值大小写不一致的问题,特自定义ObjectWrapperFactory来做统一的处理 1,首先自定义MapWrapper /** * 将Map的key全部转换为小写 * */ public class MapKeyLowerWrapper extends MapWrapper { public MapKeyLowerWrapper(MetaObject metaObject, Map<String, Object> map) { super(metaObject,