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 자동 완료 기능과 함께 사용하고 싶기 때문에 json에서 'id'를 'value'로, 'name'을 'label'로 표시하고 싶습니다.Jackson의 문서는 명확하지 않습니다.또한 필요한 기능을 하는 것처럼 보이는 주석을 모두 사용해 보았습니다만, 얻을 수 없습니다.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
Jackson 1.x 및com.fasterxml.jackson.annotation.JsonProperty
Jackson 2.x에서.사용하고 있는 오브젝트 맵퍼(버전)를 체크하고 적절한 주석을 사용하고 있는지 확인합니다.
필드 이름을 변경하는 옵션이 하나 더 있습니다.
잭슨 믹스인스
주석을 달 수 없는 서드파티 클래스를 다루거나 잭슨 고유의 주석으로 클래스를 오염시키지 않으려는 경우에 유용합니다.
Jackson의 Mixins 문서는 오래된 문서이기 때문에 이 예에서는 보다 명확한 설명을 얻을 수 있습니다.기본적으로 원하는 방식으로 직렬화를 수행하는 mixin 클래스를 만듭니다.그런 다음 ObjectMapper에 등록합니다.
objectMapper.addMixIn(ThirdParty.class, MyMixIn.class);
잭슨
Jackson을 사용하는 경우 주석을 사용하여 지정된 JSON 속성의 이름을 사용자 정의할 수 있습니다.
따라서 엔티티 필드에 주석을 달기만 하면 됩니다.@JsonProperty
주석을 붙이고 다음과 같은 커스텀 JSON 속성 이름을 입력합니다.
@Entity
public class City {
@Id
@JsonProperty("value")
private Long id;
@JsonProperty("label")
private String name;
//Getters and setters omitted for brevity
}
JavaEE 또는 자카르타EE JSON-B
JSON-B는 Java 객체를 JSON으로 변환하기 위한 표준 바인딩 레이어입니다.JSON-B를 사용하는 경우 주석을 통해 JSON 속성 이름을 재정의할 수 있습니다.
@Entity
public class City {
@Id
@JsonbProperty("value")
private Long id;
@JsonbProperty("label")
private String name;
//Getters and setters omitted for brevity
}
언급URL : https://stackoverflow.com/questions/7263282/how-to-change-a-field-name-in-json-using-jackson
'programing' 카테고리의 다른 글
부호 없는 문자를 C로 인쇄하려면 어떻게 해야 합니까? (0) | 2022.08.03 |
---|---|
Java 문자열이 "."로 분할됨(도트) (0) | 2022.08.03 |
큰 라이브러리를 사용하는 것은 본질적으로 코드를 느리게 만드는 것입니까? (0) | 2022.08.03 |
Vue 2.0: 비동기 데이터를 하위 컴포넌트에 전달 (0) | 2022.08.03 |
Java의 스태틱클래스 (0) | 2022.08.03 |