JSON中双引号的轮回使用过程中一定要小心


Posted in Javascript onMarch 05, 2014

1. 如果JSON对象中有属性是包含双引号的,比如

{ 
"description": "25"" 
}

如果转换成字符串形式,将自动加上反斜线,变为"25\"", 然后传递给REST API,保存到MongoDB中。

此时如果使用MongoDB的shell显示该数据,为"25\"", 正确。

2. 但是如果用C++ driver读取这个值是,则得到"25"", 因此如果将它直接返回到浏览器端,用jQuery.parseJSON()来解析就会报错。

C++段序列化成字符串的时候需要判断一下,将"替换成\".

void string_to_json_string(std::string const& str, std::string & json_str) { 
std::stringstream ss; 
for (size_t i = 0; i < str.length(); ++i) { 
if (str[i] == '"') { 
ss << '\\' << '\"'; 
} else { 
ss << str[i]; 
} 
} 
json_str = ss.str(); 
}

3. 如果JavaScript对"25\""调用jQuery.parseJSON()之后,反斜线已经消失,又变为"25"". 如果再次对该属性值调用jQuery.pareseJSON则又会出错。

JavaScript必须写代码防止错误:

removeDoubleQuotes: function(str) { 
return str.replace("\"", "\\\""); 
},

这就是双引号在JSON中的轮回。够麻烦吧,要小心点。
Javascript 相关文章推荐
MooTools 1.2中的Drag.Move来实现拖放
Sep 15 Javascript
js Event对象的5种坐标
Sep 12 Javascript
JS字符串的切分用法实例
Feb 22 Javascript
jQuery绑定事件的几种实现方式
May 09 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(同步显示图像位置信息)
Dec 02 Javascript
bootstrap paginator分页前后台用法示例
Jun 17 Javascript
JavaScript之RegExp_动力节点Java学院整理
Jun 29 Javascript
在Vue.js中使用Mixins的方法
Sep 12 Javascript
详解vue 数据传递的方法
Apr 19 Javascript
vue解决一个方法同时发送多个请求的问题
Sep 25 Javascript
详谈Object.defineProperty 及实现数据双向绑定
Jul 18 Javascript
Antd的Table组件嵌套Table以及选择框联动操作
Oct 24 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
Mar 05 #Javascript
JavaScript 实现简单的倒计时弹窗DEMO附图
Mar 05 #Javascript
js时间比较示例分享(日期比较)
Mar 05 #Javascript
对于Form表单reset方法的新认识
Mar 05 #Javascript
js和css写一个可以自动隐藏的悬浮框
Mar 05 #Javascript
7个JS基础知识总结
Mar 05 #Javascript
100个不能错过的实用JS自定义函数
Mar 05 #Javascript
You might like
PHP基础学习小结
2011/04/17 PHP
PHP中操作ini配置文件的方法
2013/04/25 PHP
php实现不通过扩展名准确判断文件类型的方法【finfo_file方法与二进制流】
2017/04/18 PHP
贴一个在Mozilla中常用的Javascript代码
2007/01/09 Javascript
JavaScript 闭包在封装函数时的简单分析
2009/11/28 Javascript
Javascript 判断Flash是否加载完成的代码
2010/04/12 Javascript
Javascript insertAfter() 实现函数代码
2011/10/12 Javascript
JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现
2012/08/14 Javascript
jquery插件如何使用 jQuery操作Cookie插件使用介绍
2012/12/15 Javascript
JSON+HTML实现国家省市联动选择效果
2014/05/18 Javascript
JS实现弹性菜单效果代码
2015/09/07 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
2015/09/20 Javascript
轻松实现javascript图片轮播特效
2016/01/13 Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
2020/08/21 Javascript
jQuery基于闭包实现的显示与隐藏div功能示例
2018/06/09 jQuery
JS返回页面时自动回滚到历史浏览位置
2018/09/26 Javascript
浅谈Vue.js 关于页面加载完成后执行一个方法的问题
2019/04/01 Javascript
python批量同步web服务器代码核心程序
2014/09/01 Python
Python实现过滤单个Android程序日志脚本分享
2015/01/16 Python
启动targetcli时遇到错误解决办法
2017/10/26 Python
python 对类的成员函数开启线程的方法
2019/01/22 Python
Python爬虫实战之12306抢票开源
2019/01/24 Python
Python如何使用argparse模块处理命令行参数
2019/12/11 Python
使用wxpy实现自动发送微信消息功能
2020/02/28 Python
python实现每天自动签到领积分的示例代码
2020/08/18 Python
Perfume’s Club澳大利亚官网:西班牙领先的在线美容店
2021/02/01 全球购物
解释下面关于J2EE的名词
2013/11/15 面试题
业绩考核岗位职责
2014/02/01 职场文书
转预备党员政审材料
2014/02/06 职场文书
党员创先争优公开承诺书
2014/03/28 职场文书
副校长竞聘演讲稿
2014/09/01 职场文书
尊师重教演讲稿
2014/09/04 职场文书
中学生运动会通讯稿大全
2014/09/18 职场文书
2015年世界卫生日活动总结
2015/02/09 职场文书
python代码实现备忘录案例讲解
2021/07/26 Python
Sql Server 行数据的某列值想作为字段列显示的方法
2022/04/20 SQL Server