解決json反序列化對象類型不一致問題

問題描述:
我們經常在控制層使用對象來接收json數據,當對象裏面定義接收的是數組,而前端傳過來的是空字符串,這就導致了反序列化失敗。

處理方案:
手動判斷前端傳過來的內容,根據內容進行判斷再轉換一下(項目使用的是com.fasterxml.jackson)

@Data
public class CustPublicityListInfo {
    @JsonDeserialize(using = RowJsonDeserializer.class)
    private List<Row> rows;
	
	public static class RowJsonDeserializer extends JsonDeserializer<List> {
        @Override
        public List deserialize(JsonParser jsonParser,
		DeserializationContext deserializationContext) throws IOException {
            if (jsonParser == null) {
                return null;
            }
            JsonNode node = jsonParser.getCodec().readTree(jsonParser);
            if (node == null) {
                return null;
            }
            String content = node.toString();
            if (!"\"\"".equals(content)) {
                return JacksonUtils.jsonToList(content, Row.class);
            }
            return null;
        }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章