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

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

無法讀取 JSON:無法構造`java.util.LinkedHashMap` 的實例

無法讀取 JSON:無法構造`java.util.LinkedHashMap` 的實例

千萬里不及你 2021-12-30 15:48:51
如果我得到了不確定的行 JSON 數據。我應該如何設置我的班級?這是我現在的班級public class ChatMessage {private Map<String, String> message = new HashMap<>();@JsonAnyGetterpublic Map<String, String> any(){    return this.message;}public Map<String, String> getMessage() {    return this.message;}@JsonAnySetterpublic void setMessage(String key, String value) {    message.put(key, value);}@Overridepublic String toString() {    return "Message [message=" + message + "]";}}這是我從 js 發送的 json{"type":"message","user":"james","to":"","message":"Hi every"}我現在有錯誤org.springframework.messaging.converter.MessageConversionException: Could not read JSON: Cannot construct instance of `java.util.LinkedHashMap` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('Welcome james join the room')at [Source: (byte[])" . {"type":"message","user":"james","to":"","message":"Welcome james join the room"}"; line: 1, column: 52] (through reference chain: chat.model.ChatMessage["message"]); nested exception is         com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct         instance of `java.util.LinkedHashMap` (although at least one Creator exists): no String-argument constructor/factory method to deserialize from String value ('Welcome james join the room')at [Source: (byte[])" . {"type":"message","user":"james","to":"","message":"Welcome james join the room"}"; line: 1, column: 52] (through reference chain: chat.model.ChatMessage["message"])因為我的 json 會像{"type":"message", "user":"james", "to":"", "message":"Welcome james join the room", "xxx":"xxxxxxxxxxxxx"}或者{"type":"message", "user":"james", "to":"", "message":"Welcome james join the room", "yyy":"xxxxxxxxxxxxx"}我應該如何設置我的班級?謝謝
查看完整描述

1 回答

?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

重命名messagejson 中的字段或messagePOJO 中的字段。根據您的 POJO 結構,jackson 試圖反序列化"message":"Hi every"到您的 POJO 中的消息字段,并且無法從中創建 Map(因為它只是一個字符串)。


您的代碼將使用以下 json:


{"type":"message","user":"james","to":"","json-message":"Hi every"}

或者


以下POJO:


public class ChatMessage {


private Map<String, String> map = new HashMap<>();


@JsonAnyGetter

public Map<String, String> any(){

    return this.map;

}


public Map<String, String> getMap() {

    return this.map;

}


@JsonAnySetter

public void setMap(String key, String value) {

    map.put(key, value);

}


@Override

public String toString() {

    return "Map [map=" + map + "]";

}

}


查看完整回答
反對 回復 2021-12-30
  • 1 回答
  • 0 關注
  • 4737 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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