在项目中 , 经常需要将数据封装为一个JSON对象返回给前台进行解析 . 但如果数据中包含双引号或单引号 , 就会导致部分框架在解析JSON时失败 , 无法处理(笔者后台采用的fastjson封装json , 前台用jquery解析json) , 所以这部分数据就需要进行特殊处理 , 使之能够正常解析.
一般来说 , 碰到单引号或双引号 , 用斜杠"\"转义就行 . 但在实际应用中 , 这种方法总是会出现各种问题 , 并且随着jQuery对json的格式严格要求 , 所以只有符合它的标准才能被其解析.
问题示例 :
后台封装JSON
前台解析JSON
解析失败 ,提示报错
我的解决方法是 : 在生成JSON时 , 将特殊的单引号用自定义的字符占位 , 到前台解析时 , 先进行复原
解决方案 :
@RequestMapping()public String index(Model model){JSONObject result = new JSONObject();result.put("name", "Tony'Fu".replaceAll("'", "%DYH%"));//用特殊符号进行占位model.addAttribute("data", result);return "demo";}
<script type="text/javascript">var data = $.parseJSON('${data}');alert(data.name);</script>
试验下效果 , 果然成功了 ~
如果觉得《JSON中单双引号的处理》对你有帮助,请点赞、收藏,并留下你的观点哦!