簡體   English   中英

ObjectMapper 無法將 map 轉換為 Java 中的 POJO 11

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM