我有一个使用solrj填充的List类型字段,它使用getBean()方法将数据直接封送到bean。 solr字段标记为多值,但它确实是单值的。在其余的响应中,我想将其作为单个字符串传输。这是代码
@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 "";
}
}
当我从非球衣休息客户那里得到回复对象时,我会看到&#39;标题&#39;字段正确填充为String但使用泽西REST客户端我将其作为空字符串。如何将其正确反序列化为所有REST客户端的派生值?
我从java客户端获得价值
Record response = target.queryParams(queryParams).request().buildGet().invoke(Record.class);
Chrome Rest客户端输出 { &#34;标题&#34;:&#34;新趋势&#34;,
泽西客户输出
{
&#34;标题&#34; :&#34;&#34;,
答案 0 :(得分: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;
}