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 相关文章推荐
javascript 关于# 和 void的区别分析
Oct 26 Javascript
jquery dialog键盘事件代码
Aug 01 Javascript
Javascript 面向对象(三)接口代码
May 23 Javascript
jQuery操作select的实例代码
Jun 14 Javascript
Javascript查询DBpedia小应用实例学习
Mar 07 Javascript
只需一行代码,轻松实现一个在线编辑器
Nov 12 Javascript
js实现文字截断功能
Sep 14 Javascript
JavaScrip关于创建常量的知识点
Dec 07 Javascript
angular 组件通信的几种实现方式
Jul 13 Javascript
webpack的pitching loader详解
Sep 23 Javascript
CountUp.js实现数字滚动增值效果
Oct 17 Javascript
基于vue实现简易打地鼠游戏
Aug 21 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生成自己的LOG文件
2006/10/09 PHP
PHP初学入门
2006/11/19 PHP
支付宝接口开发集成支付环境小结
2015/03/17 PHP
PHP实现的MD5结合RSA签名算法实例
2017/10/07 PHP
一个简单的弹性返回顶部JS代码实现介绍
2013/06/09 Javascript
ionic隐藏tabs的方法
2016/08/29 Javascript
jQuery中的siblings()是什么意思(推荐)
2016/12/29 Javascript
jquery——九宫格大转盘抽奖实例
2017/01/16 Javascript
解析jquery easyui tree异步加载子节点问题
2017/03/08 Javascript
详解nodejs微信公众号开发——5.素材管理接口
2017/04/11 NodeJs
Three.js如何实现雾化效果示例代码
2017/09/27 Javascript
vue项目中实现的微信分享功能示例
2019/01/21 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
2019/05/17 Javascript
JavaScript实现的联动菜单特效示例
2019/07/08 Javascript
原生JavaScript实现购物车
2021/01/10 Javascript
python异步任务队列示例
2014/04/01 Python
Python实现从百度API获取天气的方法
2015/03/11 Python
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
非递归的输出1-N的全排列实例(推荐)
2017/04/11 Python
Python信息抽取之乱码解决办法
2017/06/29 Python
python中lambda()的用法
2017/11/16 Python
Python使用Tkinter实现机器人走迷宫
2018/01/22 Python
python散点图实例之随机漫步
2018/08/27 Python
简单了解Python matplotlib线的属性
2019/06/29 Python
Python的Tkinter点击按钮触发事件的例子
2019/07/19 Python
Matlab中plot基本用法的具体使用
2020/07/17 Python
Python Serial串口基本操作(收发数据)
2020/11/06 Python
Pytorch之扩充tensor的操作
2021/03/04 Python
印尼在线精品店:Berrybenka.com
2016/10/22 全球购物
普通PHP程序员笔试题
2016/01/01 面试题
机电专业个人自荐信格式模板
2013/09/23 职场文书
法人委托书范本格式
2014/09/15 职场文书
2015年大学生村官工作总结
2015/04/21 职场文书
学生会工作感言
2015/08/07 职场文书
《从现在开始》教学反思
2016/02/16 职场文书
教你怎么用Python监控愉客行车程
2021/04/29 Python