java - jackson @JsonPropertyOrder 被忽略

标签 java json jackson

我目前正在使用 Spark 框架开发 RESTful 应用程序,并使用 Jackson 进行序列化。我遇到了这样的问题:@JsonPropertyOrder 被忽略了。

这是我的 POJO:

@Data
@JsonPropertyOrder({"id", "company", "title", "infos", "startDate", "endDate"})
public class Info {
    @JsonProperty("id")
    long id;

    @JsonProperty("company")
    Company company;

    @JsonProperty("title")
    String title;

    @JsonProperty("infos")
    List<Prize> infos;

    @JsonProperty("startDate")
    Date startDate;

    @JsonProperty("endDate")
    Date endDate;

    public Info() {}
}

我用这个方法生成 JSON:

public static String generateJSONResponse(Object response) {
    if (responseObjectMapper == null) {
        responseObjectMapper = new ObjectMapper(new JsonFactory());
        responseObjectMapper.enable(SerializationFeature.INDENT_OUTPUT);
    }

    try {
        return responseObjectMapper.writeValueAsString(response);
    } catch (IOException ioe) {
        // Must not occur
    }

    // Something really unexpected happened, so we return unknown response;
    return ErrorMessages.ERROR_RESPONSE_UNKNOWN;
}

最后我收到了这个:

{
  "status": 0,
  "result": {
    "infoList": [
      {
        "infos": [...],
        "id": 2,
        "title": "...",
        "company": {...},
        "startDate": 1445238000000,
        "endDate": 1445792400000
      },
      ...
    ]
  }
}

我做错了什么?还是 jackson 出了什么问题?有人可以帮我吗?

另外,我使用 Jackson 版本 2.6.3 和 2.3.5 进行了尝试。两者的工作方式相同。

最佳答案

检查您是否导入了正确的“JsonPropertyOrder”包:

这对我有用: import com.fasterxml.jackson.annotation.JsonPropertyOrder;

关于java - jackson @JsonPropertyOrder 被忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33186004/

相关文章:

java - Java/Scala 中无效的 ZoneDateTime 解析

java - java 树结构中的迭代和根查找

c# - 反序列化多维 JSON 字符串

ios - 将 JSON 解析为 TableView 时出现 NSNull 长度错误

java - 使用 Jackson 解析器获取整个 JSON 对象

JavaFX 使用 lambda 表达式删除 InvalidatorListener

javascript - mediawiki api 无法显示数组的结果

java - Jackson 反序列化 HashMap

java - 用 jackson 反序列化对象

java - 如何创建 SD 卡以在 Android Studio 的模拟器中使用?