您的位置:首页 > 汽车 > 新车 > 企业网页建设公司哪家好_百度信息流平台_产品营销推广_网络营销方案策划论文

企业网页建设公司哪家好_百度信息流平台_产品营销推广_网络营销方案策划论文

2024/12/25 21:53:32 来源:https://blog.csdn.net/qq_38317491/article/details/143694697  浏览:    关键词:企业网页建设公司哪家好_百度信息流平台_产品营销推广_网络营销方案策划论文
企业网页建设公司哪家好_百度信息流平台_产品营销推广_网络营销方案策划论文


Json 在序列化时是无序的,但是我们可以通过一些设置的方式去保证其有序性,当然这和我们使用的序列化框架也是有关系的。

Gson

如果使用的是 gson 作为序列化工具的话,那么只能写一个类去继承 Gson 的 TypeAdapter 这个类,然后重写 write 方法。

可以参考:

https://blog.csdn.net/pei19890521/article/details/85116507

fastjson

fastjson 相对比较简单

@Data
public class Student {private String name;private Integer age;
}
import com.alibaba.fastjson.JSONObject;
import com.amazonaws.util.json.Jackson;public class Test {public static void main(String[] args) {Student student = new Student();student.setName("xxx");student.setAge(18);System.out.println(JSONObject.toJSONString(student));}
}

这时候输出

{“age”:18,“name”:“xxx”}

其输出的字段顺序和 Student 这个类中定义的字段顺序不一致。
这个时候我们可以在这个类上增加一个注解,来指定顺序。

@Data
@JsonPropertyOrder({"name", "aeg"})
public class Student {private String name;private Integer age;
}

这个时候就会输出

{“name”:“xxx”,“age”:18}

Jackson

Jackson 其实也是 spring web 默认使用的序列化方式。

@Data
public class Student {private String name;private Integer age;
}
import com.amazonaws.util.json.Jackson;public class Test {public static void main(String[] args) {Student student = new Student();student.setName("xxx");student.setAge(18);System.out.println(Jackson.toJsonString(student));}
}

这个时候会输出

{“name”:“xxx”,“age”:18}

看似和字段定义的顺序一致,但是并不是百分之百和字段定义的顺序一致。我们可以通过在字段上增加注解来指定字段序列化之后的排序。

@Data
public class Student {@JsonProperty(index = 1)private String name;@JsonProperty(index = 0)private Integer age;
}

这个时候就会输出

{“age”:18,“name”:“xxx”}

这个顺序就和 JsonProperty 这个注解上指定的 index 的顺序一致了。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com