FastJson的parseObject方法报错 syntax error, expect {, actual string, pos 0
报错信息
使用 JSON.parseObject 把前端传来的json序列化字符串转换成Java对象时:
1syntax error, expect {, actual string, pos 0, fastjson-version 1.2.73
解决办法
debug下,msgStr为接收到的初始字符串,可以看出里面添加了java的转义字符 “\” 和前后各多了一个 " 。我们可以通过JSON.parse方法,把带有转义字符的字符串格式化成我们想要的样子,如下文中字符串str所示,里面去掉了转义字符。
1String msgStr = msg.text();
2String str = JSON.parse(msgStr).toString();
完整代码
1String msgStr = msg.text();
2User user = JsonUtil.Json2Pojo(msgStr, User.class);
3
4
5public static <T> T Json2Pojo(String str, Class<T> clazz) {
6return JSON.parseObject(JSON.parse(str).toString(), clazz);
7}