2014-04-14 2 views
0

나는 솔직히 getBean() 메소드를 사용하여 데이터를 bean에 직접 정렬하는 solrj를 사용하여 List 유형 필드를 채 웁니다. solr 필드는 다중 값으로 표시되어 있지만 실제로는 단일 값입니다. 나머지 응답에서는 단일 문자열로 전송하려고합니다. 내가 문자열로하지만 빈 문자열로 얻을 저지 REST 클라이언트를 제대로 채워 '제목'필드를 참조 비 저지 나머지 클라이언트에서 응답 객체를 얻을 때 여기에 코드저지/잭슨 목록을 응답으로 String으로 변환하는 방법

@XmlRootElement 
@JsonSerialize(include = Inclusion.NON_NULL) 
@JsonIgnoreProperties(ignoreUnknown = true) 
public class Record { 

    @JsonIgnore 
    @Field //solrj field populated based on schema type 
    private List<String> titleList; 

    public String getTitle() { 
     if(titleList!= null && titleList.size() > 0) { 
      return titleList.get(0); 
     } 
     return ""; 
    } 
} 

입니다. 모든 REST 클라이언트에 대해 파생 값으로 올바르게 역 직렬화 할 수 있습니까? "새로운 트렌드"

저지 클라이언트 출력 {
"제목을"

나는

Record response = target.queryParams(queryParams).request().buildGet().invoke(Record.class); 

크롬 나머지 클라이언트 출력 { "제목"

으로 자바 클라이언트에서 값을 얻고있다 : "",

답변

0

필드 대신 getter 및 setter 메소드에서 @JsonIgnore를 사용했습니다. 이는 비 직렬화 및 직렬화 모두에 적용됩니다.

@Field("title") 
    private List<String> titleList; 

@JsonIgnore 
public List<String> getTitleList() { 
    return titleList; 
} 

@JsonIgnore 
public void setTitleList(List<String> titleList) { 
    this.titleList= titleList; 
} 

public String getTitle() { 
    if(titleList!= null && titleList.size() > 0) { 
     return titleList.get(0); 
    } 
    return null; 
} 
관련 문제