Open HalfWater opened 6 years ago
按顺序输出业务场景会需要到,比如是为了生成一些报表而传递或保存的数据,那么要保证格式和列的顺序与业务需求一致
@lousama 正是因为这个原因,我找了一圈并没有找到一个比较直接的配置,实现生成的json顺序和定义的pojo中的field的顺序一致的,不许要定义排序规则,也不需要按名称排序的。
之前遇到过一个问题. fastjson版本不同 对一个JSONObject.toJSONString(hashmap)的顺序也不一样
我是这样设置的: JSON.DEFAULT_GENERATE_FEATURE = JSON.DEFAULT_GENERATE_FEATURE & ~SerializerFeature.SortField.getMask(); 但是也没有生效,所以正要来提问题
同样有这个问题,不知道fastjson作者怎么想的,我明明不想让它自动排序,它却自动按字典顺序排序,又找不到修改这个配置的入口。
都2019了,这个问题有解决嘛,同样是不想排序。。使用的版本是1.2.58
同求默认按field顺序排序
强烈要求自己定义JSON.toJSONString()是否排序!!!真是后悔用fastjson了,不知道作者怎么想的???
真的需要一个自定义JSON.toJSONString()是否排序
👍 ,为什么不实现一个按定义的 FieldName 的顺序排序?使用 JSONType 和 JSONField 是否比较繁琐?
把默认的SortField剔除可解决这个问题 JSON.DEFAULT_GENERATE_FEATURE = JSON.DEFAULT_GENERATE_FEATURE &~ SerializerFeature.SortField.getMask();
把默认的SortField剔除可解决这个问题 JSON.DEFAULT_GENERATE_FEATURE = JSON.DEFAULT_GENERATE_FEATURE &~ SerializerFeature.SortField.getMask();
来个例子。。。 我2个系统传值 用同一个方法 JSON.toJSONString(reqData,JSON.DEFAULT_GENERATE_FEATURE &~ SerializerFeature.SortField.getMask(), SerializerFeature.MapSortField); 转出来的值顺序正好相反。。
我想两个地方转出来的顺序要一样的。。求解怎么实现
把默认的SortField剔除可解决这个问题 JSON.DEFAULT_GENERATE_FEATURE = JSON.DEFAULT_GENERATE_FEATURE &~ SerializerFeature.SortField.getMask();
来个例子。。。 我2个系统传值 用同一个方法 JSON.toJSONString(reqData,JSON.DEFAULT_GENERATE_FEATURE &~ SerializerFeature.SortField.getMask(), SerializerFeature.MapSortField); 转出来的值顺序正好相反。。
我想两个地方转出来的顺序要一样的。。求解怎么实现
抱歉现在才看到,可以参考这里https://github.com/alibaba/fastjson/issues/3115
按顺序输出业务场景会需要到,比如是为了生成一些报表而传递或保存的数据,那么要保证格式和列的顺序与业务需求一致
你的头像很有意思
Fastjson中通过@JSONType,@JSONField注解可以定义属性的顺序 如: @JSONType(orders={"name","age","gender","height","weight"}) public class Person { private String name; private Integer age; private String gender; private Double height; private Double weight; }
或者: public class Person { @JSONField(ordinal = 1) private String name; @JSONField(ordinal = 2) private Integer age; @JSONField(ordinal = 3) private String gender; @JSONField(ordinal = 4) private Double height; @JSONField(ordinal = 5) private Double weight; }
如果每个VO都显示的指定顺序会比较繁琐。所以,我的问题是: 1、fastjson设计为按顺序输出的目的是什么?
2、有没有全局的配置,来取消属性排序的功能?
3、是否会推出指定的SerializerFeature? 现有的SerializerFeature.SortField,SerializerFeature.MapSortField都是针对JSONField的。