У меня возникла проблема, когда аннотации JsonProperty для изменения имени переменной не выполняются. Вот пример приложение https://github.com/derrylvarghese/problematicjson@JsonProperty не работает (Weblogic 12.2.1 и Java 8)
Я преобразование следующего JSON в POJO и затем преобразовать его обратно в формат JSON
String json = "{\"response\": {\"companyname\": \"ABC Company\",\"issn\": [{\"format\": \"paper\",\"val\": \"0018-9480\"},{\"format\": \"online\",\"val\": \"1557-9670\"}]},\"teststring\":\"testing me out\"}";
ObjectMapper mapper = new ObjectMapper();
WrapperObj record = mapper.readValue(json, WrapperObj.class);
ObjectWriter writer = mapper.writer();
writer.writeValue(response.getOutputStream(), record);
Я ожидал «Вэл» в объекте «тек-», чтобы показать, как 'value', поскольку у меня есть @JsonProperty («значение»), примененное к полю «val». Вот выход json (отредактированный для краткости).
issn: [
{
format: "Print ISSN",
val: "0018-9480"
}
]
Если бы я создать объект тек- и сделать record.getResponse.setIssn (setMyObject), выход JSON показан правильный JsonProperty тег. Я связываюсь с примером проекта, который покажет это, если кому-то это интересно. (Мерзавец ссылка: https://github.com/derrylvarghese/problematicjson)
Update Похоже, так как я аннотированный мой POJO поле с @JsonProperty("value")
, входящее поле JSON также следует назвать «значение». Все это, пока я видел 'val' в выходе, потому что у меня было все поле List, в которое шли все поля. Я удалил это поле JsonAnyGetter, и теперь мое поле «val» не отображается.
Я ударил по блочному тесту, и результат был таким, как ожидалось, 'val' был записан как' value'. У вас есть образец кода вашей сериализации? В качестве примечания стороны вам не нужно комментировать геттер и поле. – Leon
Как @Leon, я не могу воспроизвести. – rbntd
Возможно, вы импортировали неправильный класс аннотации JsonProperty или вы можете использовать неправильный сериализатор JSON, то есть тот, который не заботится о аннотации 'JsonProperty'. Предоставьте больше кода, в частности, импорт класса 'Isbn' и конфигурацию сериализатора JSON. – Codo