JSON字段无序

时间:2012-03-07 23:49:25

标签: json spring jackson

我正在使用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”}]

寻找解决方案,但没找到任何解决方案。还有其他人遇到过这个问题吗?

感谢您的帮助

4 个答案:

答案 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)