FastJSON 序列化输出JSON串时,默认按字段名的字母先后顺序排序输出
但是在某些场景下不希望排序,可以使用以下方式解决
- 在类上加注解 JSONType(orders= “a,b,c”)
- 在字段上加注解 JSONField(ordinal = 1)
- 使用JSONObject put, 序列化时传入 SerializerFeature 枚举中的相关选项(待验证)
或者还有更方便的方法 是我 不知道的,,大家可以在评论里留言告知,感谢
不清楚 作者 为什么这么设计,为什么要设计注解来完成这个事情?感觉有点繁琐
应该提供一个选项 来决定如何排序
- 字母升序
- 字母降序
- 字段声明顺序(不排序)
或者直接使用JackSon 框架来序列化,默认是按字段声明顺序
如果想要排序,可以在类上加注解 @JsonPropertyOrder(value =“a,c,b”)
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);//默认不过滤null字段,此处设置为过滤null字段
try {
String json = objectMapper.writeValueAsString(dto);//按字段顺序输出
System.out.println("jackson序列化结果:" + json);
} catch (Exception e){
e.printStackTrace();
}