Jackson @JsonPropertyOrder wird ignoriert
Posted: 08 Jan 2025, 08:03
Ich entwickle derzeit eine RESTful-App mit dem Spark-Framework und verwende Jackson für die Serialisierung. Und ich bin auf folgendes Problem gestoßen: @JsonPropertyOrder wird ignoriert.
Hier ist mein POJO:
Ich generiere JSON mit dieser Methode:
Und am Ende erhalte ich Folgendes:
Was mache ich falsch? Oder stimmt etwas mit Jackson nicht? Kann mir jemand dabei helfen?
Außerdem habe ich es mit Jackson Version 2.6.3 und 2.3.5 versucht. Beides funktioniert auf die gleiche Weise.
Hier ist mein POJO:
Code: Select all
@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
infos;
@JsonProperty("startDate")
Date startDate;
@JsonProperty("endDate")
Date endDate;
public Info() {}
}
Code: Select all
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;
}
Code: Select all
{
"status": 0,
"result": {
"infoList": [
{
"infos": [...],
"id": 2,
"title": "...",
"company": {...},
"startDate": 1445238000000,
"endDate": 1445792400000
},
...
]
}
}
Außerdem habe ich es mit Jackson Version 2.6.3 und 2.3.5 versucht. Beides funktioniert auf die gleiche Weise.