JavaScript解析JSON字符串报错:missing ) after argument list;Unexpected token c in JSON at position 201;

描述:Solr返回的高亮片段中使用css标签来高亮,但是标签里是有双引号的,在后端将片段传送到前端,前端将其解析成JSON对象时报错了。简单的做个错误记录。

错误一:

Uncaught SyntaxError: missing ) after argument list;

后端传送json内容

{"secondHalfJson":{"emrContent":"  就诊时间:2017-07-21 08:54    就诊科别:消化内科副高<\/br> <\/br>  简要病史:腹泻<\/font>腹痛<\/font>4天。4天前发生,现已无腹痛<\/font>腹泻<\/font>,要求检查。既往有类似发作。<\/br>  体格检查:腹平软无压痛<\/br> 辅助检查<\/br>  诊断:腹泻<\/font><\/br>  门诊处理:检查:CT:全腹部平扫 <\/br>  <\/br>      建议血常规、粪便常规隐血、腹部CT。 定期门诊随访,不适随时就诊。<\/br>医生签名:"}}

前端JavaScript解析:

window.$CHJson=$.parseJSON( "${CHJson}" );

问题出在参数两边使用了双引号,并且JSON字符串中有双引号,所以在第一个大括号处就报错了;

错误二:

Uncaught SyntaxError: Unexpected token c in JSON at position 201

前端JavaScript解析:

window.$CHJson=$.parseJSON( '${CHJson}' );

将两边双引号换成单引号时,虽然不报错误一了,但是JSON字符串内容中的双引号,影响了默认的参数两边的双引号;

综上:

所以,在前端解析JSON字符串时,内容中不应该有双引号。


你可能感兴趣的:(JavaScript,Jquery)