Cannot deserialize instance of `java.lang.String` out of START_OBJECT token at
问题:
在获取值的时候,类型是 Object(实际是一个map格式的数据),要转为json的数据,写的时候,就直接
Object flow;
JSON.parseObject(flow.toString());
报错了
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这种格式的。
处理:
Object flow;
JSON.parseObject(JSONObject.toJSONString(flow));
这时候也可以直接用强制类型转换
Map<String, Object> flowMap = (Map<String, Object>) flow;
#
总结:
在处理map toString的时候,要注意其格式,能直接用,就直接用,有其它要求的,转为字符串的时候用 JSONObject.toJSONString() 方法。
有些细节的问题,还是要注意,减少返工的次数。
还没有评论,来说两句吧...