我正在使用spring MVC编写一些RESTful服务。我正在使用jsckson mapper来完成It转换。 这一切都很好,除了它生成的json有完全无序的字段。
例如 如果我的实体对象如下所示:
public class EntityObj
{
private String x;
private String y;
private String z;
}
如果我现在有一个EntityObjs的列表,并且我从控制器返回这个,那么json的命令混合了这些字段,例如: [{y:“ABC”,z:“XYZ”,x:“DEF”},{y:“ABC”,z:“XYZ”,x:“DEF”}]
寻找解决方案,但没找到任何解决方案。还有其他人遇到过这个问题吗?
感谢您的帮助
答案 0 :(得分:21)
正如其他人所说,订购无关紧要。尽管如此,如果您更喜欢某些排序,请使用@JsonPropertyOrder
注释,如下所示:
@JsonPropertyOrder({ "x", "y", "x" })
public class EntityObj {
}
答案 1 :(得分:3)
我意识到这不适用于以大写字母开头的变量名。例如,一个名为" ID"的变量。不会被订购。
答案 2 :(得分:3)
如果字母顺序适合您并且您使用的是Spring Boot,则可以在application.properties
中添加:
spring.jackson.mapper.sort-properties-alphabetically=true
答案 3 :(得分:1)
如果您不想像接受的答案那样明确定义字段顺序,您可以简单地使用:
@JsonPropertyOrder(alphabetic=true)