为了账号安全,请及时绑定邮箱和手机立即绑定

意外字符('='(代码 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 关注
  • 615 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信