一、场景
前端传来嵌套的JSON数据,需要将其中嵌套的内部JSON完整保存起来。
二、报错信息:
Cannot deserialize instance of 'java.lang.String' out of START_OBJECT token
1.原因分析
代码如下:
请求数据:
JSON里面嵌套的JSON拿出来之后是一个对象,所以没办法直接转成String,具体分析见这个教程
2.尝试的方法
解决了一部分问题的教程
他的解决方法就是把HashMap里的值的对象改成Object类型,修改之后报了其他错。
最后的解决方法是,使用阿里巴巴JAON转String的函数。
import com.alibaba.fastjson.JSONObject;
public Result<Object> startMutilProcess(@RequestBody HashMap<String, Object> map,
HttpServletRequest request){
String canEditContent = JSONObject.toJSONString(map.get("canEditContent"));
}
三、总结
报错原因:嵌套的JSON拿出之后是Object类,无法用String直接接收和转换
解决方法:用Object接收并且借助JSONObject转成Java String类。