[英]ObjectMapper could not convert map to POJO in Java 11
現在我正在使用 ObjectMapper 將 Map 轉換為 java 中的 POJO,這是我的代碼:
@Override
public RssSubSourceExtDTO getChannelAnalysisInfo() {
Map<String, Object> analysisInfo = customRssSubSourceMapper.getSourceInfo(new SubSourceRequest());
final ObjectMapper mapper = new ObjectMapper();
final RssSubSourceExtDTO pojo = mapper.convertValue(analysisInfo, RssSubSourceExtDTO.class);
return pojo;
}
但結果 POJO 的所有屬性都是 null。 我試圖調整 POJO 屬性名稱,並將 POJO 屬性調整為 Object 類型,但仍然無法將值從 map 轉換為 POJO。 這是我的 POJO 定義:
import java.io.Serializable;
/**
* @author dolphin
*/
@JsonIgnoreProperties(ignoreUnknown = true)
@Data
public class RssSubSourceExtDTO implements Serializable {
/**
* support increment pull channel count
* rss_sub_source.id
*
* @mbggenerated
*/
private Object incrementPullChannelCount;
/**
* do not support increment pull channel count
* rss_sub_source.created_time
*
* @mbggenerated
*/
private Long fullPullChannelCount;
/**
*
* rss_sub_source.editor_pick
*
* @mbggenerated
*/
@ApiModelProperty(value = ")")
private Long editorPickChannelCount;
}
這是現在的調試視圖:
我應該怎么做才能解決它?
查看analysisInfo
信息 map,字段名稱與您 POJO 中的實例變量名稱不匹配。 例如,字段名稱是fullPullChannelCount
而您的 map 有fullpullchannelcount
。
使用@JsonProperty
將map 中的屬性名稱map 中的變量名添加到POJO 中。
@JsonProperty("fullpullchannelcount")
private Long fullPullChannelCount;
@JsonProperty("editor_pick_channel_count")
private Long editorPickChannelCount;
....
請參閱: @JsonProperty 屬性何時使用以及它的用途是什么?
或者,您可以更改序列化數據中的屬性名稱與實例變量名稱匹配。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.