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 flowMap = (Map) flow;

 总结:

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

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

你可能感兴趣的:(错误处理,java)