Jackson:nested exception is java.lang.IllegalArgumentException: Cannot construct instance of **** (although at least one Creator exists):
要进行 json 转换的对象:
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
/**
* 获取 DOM 信息的信息传递对象
*
* @author : LiuXianghai on 2021/1/20
* @Created : 2021/01/20 - 15:42
* @Project : GetDataService
*/
@Data
public class ParseDomMessage {
@JsonCreator
public ParseDomMessage(@JsonProperty("message") String message,
@JsonProperty("startFlag") Boolean isStartParse,
@JsonProperty("finishedFlag") Boolean isParseEnd,
@JsonProperty("count") Long count) {
this.isParseEnd = isParseEnd;
this.isStartParse = isStartParse;
this.message = message;
this.count = count;
}
@JsonCreator
public ParseDomMessage(){}
// 传递的信息内容
@JsonProperty("message")
private String message;
// 是否开始获取对应 DOM
@JsonProperty("startFlag")
private Boolean isStartParse;
// 是否已经获取了对应的 DOM
@JsonProperty("finishedFlag")
private Boolean isParseEnd;
/*
计数标记, 每次发送的消息可能会被重新接受,
因此这个属性的作用就是每次增加技术来避免可能会重复接受到同一消息的问题
*/
@JsonProperty("count")
private Long count;
}
待转换的 json数据:
{"message":"Start parse dom","startFlag":true,"finishedFlag":false,"count":1}
在使用 Jackson 的 ObjectMapper.convertValue()
方法对 json 数据进行转换时, 出现了以下异常:
解决办法, 使用 ObjectMapper.readValue()
代替 ObjectMapper.convertValue()
对JSON数据进行反转, 即可解决问题。