Jackson을 사용하여 JSON에서 필드 이름 변경
잭슨을 사용하여 내 객체를 json으로 변환하고 있습니다. 객체에는 2 개의 필드가 있습니다.
@Entity
public class City {
@id
Long id;
String name;
public String getName() { return name; }
public void setName(String name){ this.name = name; }
public Long getId() { return id; }
public void setName(Long id){ this.id = id; }
}
jQuery 자동 완성 기능과 함께 이것을 사용하고 싶기 때문에 'id'는 json에서 'value'로 나타나고 'name'은 'label'로 나타납니다. 잭슨의 문서는 이에 대한 명확하지 않습니다와 나는 내가 필요하지 않습니다하지만 난 얻을 수없는 것처럼, 심지어 원격으로 보인다 모든 주석을 해봤 name
로 표시 label
하고 id
로 표시 value
json으로한다.
이 작업을 수행하는 방법 또는 가능한지 아는 사람이 있습니까?
@JsonProperty를 사용해 보셨습니까?
@Entity
public class City {
@id
Long id;
String name;
@JsonProperty("label")
public String getName() { return name; }
public void setName(String name){ this.name = name; }
@JsonProperty("value")
public Long getId() { return id; }
public void setId(Long id){ this.id = id; }
}
이 있음을주의 org.codehaus.jackson.annotate.JsonProperty
잭슨 1.x에서와 com.fasterxml.jackson.annotation.JsonProperty
잭슨 2.x 또는 3.0에 사용중인 ObjectMapper (버전에 따라)를 확인하고 올바른 주석을 사용해야합니다.
필드 이름을 바꾸는 옵션이 하나 더 있습니다.
잭슨 믹스 인 .
주석을 달 수없는 타사 클래스 를 처리 하거나 Jackson 특정 주석으로 클래스를 오염시키지 않으려는 경우에 유용합니다 .
Mixins에 대한 Jackson 문서는 구식이므로이 예 는 더 명확합니다. 본질적으로 : 원하는 방식으로 직렬화를 수행하는 mixin 클래스를 만듭니다. 그런 다음 ObjectMapper에 등록하십시오.
objectMapper.addMixIn(ThirdParty.class, MyMixIn.class);
참고 URL : https://stackoverflow.com/questions/7263282/change-field-name-in-json-using-jackson
'IT' 카테고리의 다른 글
CURL 명령 행 URL 매개 변수 (0) | 2020.06.06 |
---|---|
내부 조인으로 PostgreSQL 삭제 (0) | 2020.06.06 |
Javascript에서 숫자를 반올림하는 방법은 무엇입니까? (0) | 2020.06.06 |
파이썬에서 '@ ='기호는 무엇입니까? (0) | 2020.06.05 |
pytest에서 conftest.py 파일의 용도는 무엇입니까? (0) | 2020.06.05 |