JSON中单双引号的处理

在项目中 , 经常需要将数据封装为一个JSON对象返回给前台进行解析 . 但如果数据中包含双引号或单引号 , 就会导致部分框架在解析JSON时失败 , 无法处理(笔者后台采用的fastjson封装json , 前台用jquery解析json) , 所以这部分数据就需要进行特殊处理 , 使之能够正常解析.
一般来说 , 碰到单引号或双引号 , 用斜杠"\"转义就行 . 但在实际应用中 , 这种方法总是会出现各种问题 , 并且随着jQuery对json的格式严格要求 , 所以只有符合它的标准才能被其解析.

问题示例 : 

后台封装JSON

JSON中单双引号的处理_第1张图片

前台解析JSON

JSON中单双引号的处理_第2张图片

解析失败 , 提示报错

JSON中单双引号的处理_第3张图片

我的解决方法是 : 在生成JSON时 , 将特殊的单引号用自定义的字符占位 , 到前台解析时 , 先进行复原

解决方案 : 

@RequestMapping()
	public String index(Model model){
		JSONObject result = new JSONObject();
		result.put("name", "Tony'Fu".replaceAll("'", "%DYH%"));//用特殊符号进行占位
		
		model.addAttribute("data", result);
		
		return "demo";
	}

试验下效果 , 果然成功了 ~

JSON中单双引号的处理_第4张图片

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