fastjson序列化排序问题

fastjson序列化,默认是用字母排序,

那么怎么来实现按照自己定义的顺序输出,想要的json串呢?

直接上代码:

package com.zpxinfu.test.testcase.interFace;

import com.alibaba.fastjson.annotation.JSONType;

//设置排序规则
@JSONType(orders = { "busiCode", "message"})
public class TransMessage {
String busiCode;
Message message;
public String getBusiCode() {
return busiCode;
}
public void setBusiCode(String busiCode) {
this.busiCode = busiCode;
}
public Message getMessage() {
return message;
}
public void setMessage(Message message) {
this.message = message;
}
}

@JSONType与Serializable同时存在,jsontype的orders属性不起作用 to @JSONType中order未指明的字段,必须用@JSONField(serialize=false)修饰,否则排序无效

测试代码如下:

@Test
public void getBody(){
List skill = new ArrayList();
skill.add("Java");
skill.add("IOS");
skill.add("Android");
User user = new User();
user.setName("SOJSON");
user.setAge(27);
user.setSex("男");
user.setSkill(skill);
String json = JSON.toJSONString(user);
System.out.println(json);
}

运行结果如下:

{"name":"SOJSON","age":27,"sex":"男","skill":["Java","IOS","Android"]}

时间: 2024-11-05 00:48:44

fastjson序列化排序问题的相关文章

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

利用fastjson序列化对象为JSON

利用fastjson序列化对象为JSON 参考博客:http://blog.csdn.net/zeuskingzb/article/details/17468079 Step1:定义实体类 //用户类 public class User { private Long id; private String name; //增加get/set方法 } //定义组,1组有多个用户 public class Group { private Long id; private String name; pr

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

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

使用TProfiler分析并调优项目中的Fastjson序列化代码

新项目年后就上线了,现在业务上没什么问题,就用TProfiler做了下性能分析,果然有坑. 一.TProfiler入门 高手请自觉略过本节. 1.简介 TProfiler是阿里巴巴开源的一款性能分析工具.号称可以用于生产环境进行长期的性能分析.测试程序部署后,在低峰期对响应时间影响20%,在高峰期对QPS影响30%.详细介绍请见官方WIKI. 2.简要的实现原理 TProfiler的实现基于JAVA的Instrumentation 和ASM.Instrumentation可以理解为一种虚拟机级别

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

最近工作中遇到了这样的需求: 我用fastjson序列有序map的时候,tojson方法会让这个map无序,tojsonstring虽然能保留map的结构,不过会让结果里含有\(我是jsonStrin套jsonString,java会出现转义字符) 解决方案JSONObject有个传入boolean值的构造函数 如果传入的是true就代表保留数据结构的顺序 这时候我们可以吧要序列化的map放到我们创建的JSONObject对象里 最后再把我们的JSONObject对象放到最终的结果里 代码示例

springboot利用fastjson序列化输出(默认是jackson)

在@SpringBootApplication类中添加 @Bean public HttpMessageConverters fastJsonHttpMessageConverters() { //创建FastJson信息转换对象 FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter(); //创建FastJson对象并设定序列化规则 FastJsonConfig

Fastjson 序列化与反序列化

JSON这个类是fastjson API的入口,主要的功能都通过这个类提供. 序列化API // 将Java对象序列化为JSON字符串,支持各种各种Java基本类型和JavaBean public static String toJSONString(Object object, SerializerFeature... features); // 将Java对象序列化为JSON字符串,返回JSON字符串的utf-8 bytes public static byte[] toJSONBytes(

fastjson序列化乱序问题

1.初始化为有序json对象 JSONObject jsonOrdered= new JSONObject(true); 2.将String对象转换过程中,不要调整顺序 JSONObject jsonOrdered = JSONObject.parseObject(jsonString, Feature.OrderedField);

FastJson序列化

String post = HttpClientUtils.httpPost(martinUrl + "index/status",new HashMap<>()); JSONObject object = JSON.parseObject(post); String jsonString = object.getJSONArray("data").toJSONString(); List<MartinResVo> list = JSON.p