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

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

意外字符('='(代碼 61)):解析 JsonString 時

意外字符('='(代碼 61)):解析 JsonString 時

大話西游666 2021-05-30 05:53:38
解析 JSONString ( assigned=[util.TaskAudit@24c7b944]}) 如下:Map<String, List<TaskAudit>> auditTrailMap = new HashMap<>();ObjectMapper mapper = new ObjectMapper();mapper.configure(Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);try {    auditTrailMap = mapper.readValue(strObject, new TypeReference<Map<String, List<TaskAudit>>>(){});} catch (IOException e) {    log.error("{}", e);}我收到以下異常:com.fasterxml.jackson.core.JsonParseException: Unexpected character ('=' (code 61)): 期望在 [Source: {assigned=[util.TaskAudit@24c7b944]} 處用冒號分隔字段名稱和值 [junit] ; 行:1,列:11]任何人都可以提供有關如何解決該問題的任何線索。編輯:基本上這個函數的輸入是來自數據庫的字符串字段。在保存時,我們像這樣保存它:        Map<String, List<TaskAudit>> auditTrailMap = new HashMap<>();        auditTrailMap.put("assigned", taskAuditList);        String jsonString =  new JSONObject(auditTrailMap).toString();但是在嘗試解析 jsonString 時,它就像 (assigned=[util.TaskAudit@24c7b944]}),我不知道 '=' 來自哪里以及如何解析它。
查看完整描述

2 回答

?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

您的方法的問題是“您試圖以錯誤的方式將 MAP 解析為 JSON。”


您需要在那里使用 ObjectMapper 將您的 MAP 解析為 JSON 字符串。完成此操作后,您應該能夠根據 Map 中存在的 KEY 和 VALUE 獲得預期的正確 JSON 字符串。


   Map<String, List<TaskAudit>> auditTrailMap = new HashMap<>();

   auditTrailMap.put("assigned", taskAuditList);

   String jsonString =  new ObjectMapper().writeValueAsString(auditTrailMap); 

執行此操作后,您將獲得正確的 JSON: { "assigned" : "您在地圖中設置的鍵的對應值" }


希望這有助于您的預期要求。


查看完整回答
反對 回復 2021-06-02
?
MM們

TA貢獻1886條經驗 獲得超2個贊

任何人都可以提供有關如何解決該問題的任何線索。


你已經有了


{assigned=[util.TaskAudit@24c7b944]}

不是有效的 JSON 字符串。


toString()Map 的方法不需要返回您的 JSON 表示,因此您必須自己將其序列化為 JSON,就像在這個答案中一樣:


Map<String,String> payload = new HashMap<>();

payload.put("key1","value1");

payload.put("key2","value2");


// right way to convert map to JSON:

String json = new ObjectMapper().writeValueAsString(payload); 

根據您的需要調整上面的代碼,可能會重用ObjectMapper實例。


在適應新技術之前先閱讀文檔和示例,它會在未來為您節省大量時間,因為它們通常會突出人們使用庫的最常見案例。



查看完整回答
反對 回復 2021-06-02
  • 2 回答
  • 0 關注
  • 682 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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