Cannot deserialize instance of `java.lang.String` out of START_OBJECT token at

野性酷女 2024-03-27 10:25 149阅读 0赞

问题:

在获取值的时候,类型是 Object(实际是一个map格式的数据),要转为json的数据,写的时候,就直接

  1. Object flow;
  2. JSON.parseObject(flow.toString());

报错了

  1. Cannot deserialize instance of `java.lang.String` out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.lang.String` out of START_OBJECT token at [Source: (PushbackInputStream); line: 1, column: 1]

看到错误,才想起来map格式的数据,toString 是无法json的,里面的内容是 xxx = aaa这种格式的。

处理:

  1. Object flow;
  2. JSON.parseObject(JSONObject.toJSONString(flow));

这时候也可以直接用强制类型转换

b2b76950d56d4b388563c34d0a17e19b.png

  1. Map<String, Object> flowMap = (Map<String, Object>) flow;

#

总结:

在处理map toString的时候,要注意其格式,能直接用,就直接用,有其它要求的,转为字符串的时候用 JSONObject.toJSONString() 方法。

有些细节的问题,还是要注意,减少返工的次数。

发表评论

表情:
评论列表 (有 0 条评论,149人围观)

还没有评论,来说两句吧...

相关阅读