Jackson에서는 직렬화 및 역직렬화 중에 속성에 대해 서로 다른 이름을 가질 수 있습니다. 다음 Coordinates 클래스의 예를 고려해 보겠습니다.
<code class="java">class Coordinates { int red; }</code>
직렬화 해제에는 다음 JSON 형식이 필요합니다.
<code class="json">{ "red": 12 }</code>
그러나 직렬화에는 다음 형식이 필요합니다.
<code class="json">{ "r": 12 }</code>
해결책:
해결책은 getter 및 setter 메서드 모두에 @JsonProperty 주석을 사용하여 서로 다른 이름을 갖도록 하는 것입니다.
<code class="java">class Coordinates { int red; @JsonProperty("r") public byte getRed() { return red; } @JsonProperty("red") public void setRed(byte red) { this.red = red; } }</code>
메서드 이름은 달라야 합니다. Jackson은 이를 다른 이름을 가진 동일한 속성이 아닌 다른 속성에 대한 참조로 해석합니다.
추가 참고 사항:
테스트 코드:
<code class="java">Coordinates c = new Coordinates(); c.setRed((byte) 5); ObjectMapper mapper = new ObjectMapper(); System.out.println("Serialization: " + mapper.writeValueAsString(c)); Coordinates r = mapper.readValue("{\"red\":25}",Coordinates.class); System.out.println("Deserialization: " + r.getR());</code>
출력:
Serialization: {"r":5} Deserialization: 25
위 내용은 Jackson에서 JSON 직렬화 및 역직렬화를 위한 다양한 속성 이름을 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!