描述:Solr返回的高亮片段中使用css标签来高亮,但是标签里是有双引号的,在后端将片段传送到前端,前端将其解析成JSON对象时报错了。简单的做个错误记录。
错误一:
Uncaught SyntaxError: missing ) after argument list;
后端传送json内容
{"secondHalfJson":{"emrContent":" 就诊时间:2017-07-21 08:54 就诊科别:消化内科副高<\/br> <\/br> 简要病史:<font style=\"color:red\">腹泻<\/font><font style=\"color:red\">腹痛<\/font>4天。4天前发生,现已无<font style=\"color:red\">腹痛<\/font><font style=\"color:red\">腹泻<\/font>,要求检查。既往有类似发作。<\/br> 体格检查:腹平软无压痛<\/br> 辅助检查<\/br> 诊断:<font style=\"color:red\">腹泻<\/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字符串时,内容中不应该有双引号。