亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

com.fasterxml.jackson.databind.exc.Invalid

com.fasterxml.jackson.databind.exc.Invalid

長風秋雁 2023-07-28 16:56:37
我在執行下面的代碼時遇到com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No value type configured for ObjectReader問題杰克遜版本是jackson-databind-2.9.9.jarpublic <T> T parsingData(String body) {  try {    return getObjectMapper().reader().readValue(body);  } catch (IOException ioe) {     ioe.printStackTrace();  }}在我進入的確切異常下方printStackTrace,可以找到String body異常中公開的內容。com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No value type configured for ObjectReaderat [Source: (String)"{     "timestamp": "2019-06-04T09:36:50.086+02:00",     "path": "/api/check/85358/checking/246syb-f3f2-4756-91da-dae3e8ce774b/test/22462da-c4e2-45ca-bd27-246/rows/8bc3965a-ae22-4d7f-b770-262sgs24/port",     "status": 400,     "error": "Internal Server Error",     "message": "[owner.firstName2:size:1:30, owner.lastName2:size:1:30]",     "errorCode": 200000    }    "; line: 1, column: 1]更新:您能解釋一下為什么我會收到此異常嗎?這是因為我沒有提供Class還是TypeReference?
查看完整描述

1 回答

?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

com.fasterxml.jackson.databind.exc.InvalidDefinitionException:沒有為 ObjectReader 配置值類型

意味著Jackson不知道您想要反序列化為哪種類型。由于Java 中的類型擦除,它不起作用。

當你綁定一個類時它將起作用:

public?static?<T>?T?parsingData(String?body)?throws?IOException?{
????return?new?ObjectMapper().readerFor(A.class).readValue(body);
}

或者使用Class參數:

public?static?<T>?T?parsingData(String?body,?Class<T>?clazz)?throws?IOException?{
????return?new?ObjectMapper().readerFor(clazz).readValue(body);
}

要理解readValue方法,我們需要查看文檔:

使用此讀取器的配置綁定從給定 JSON 字符串讀取的內容的方法。返回值要么是新構造的,要么是使用 withValueToUpdate(Object) 指定的根值。

但在您的代碼中您使用了純閱讀器,沒有任何配置。

如果您不知道類型,只需反序列化JSONJsonNode這可能是最通用的方法:

JsonNode?root?=?new?ObjectMapper().readTree(json);


查看完整回答
反對 回復 2023-07-28
  • 1 回答
  • 0 關注
  • 175 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號