今天在做开发的时候碰到要用js解析从服务器传回的一个字符串,字符串内容如下:
{isSuccessed:true,resultValue:3,resultCode:200,resultDesc:"success",affectedRows:-1,outParams:{},callbackParams:{}}
假设这个字符串变量名为res,尝试了用如下两个方法解析:
JSON.parse(res);
$.parseJSON(res);
都失败,为什么?因为上述字符串中的键值没有用引号引起来,所以json校验会出错(可以复制到任一json在线校验网站校验一下)。
那么怎么办呢?经过尝试发现使用javascript的eval函数可以达到目的:
eval('('+res+')');
请注意在参数res前后加上的括号。