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

 更新时间:2014年03月05日 17:03:08   作者:  
如果JSON对象中有属性是包含双引号当转换成字符串形式,将自动加上反斜线,详细请祥看本文
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 类方法定义还是有点区别

    这两个定义都可以,不过后者对FF貌似好一些,前者在FF下可能出现missing before formal parameters错误,导致js无法执行。
    2009-04-04
  • Javascript动态创建div的方法

    Javascript动态创建div的方法

    这篇文章主要介绍了Javascript动态创建div的方法,是javascript节点操作的典型应用,非常具有实用价值,需要的朋友可以参考下
    2015-02-02
  • 选择器的朋友可以试试这个思路 延迟执行归并选择操作

    选择器的朋友可以试试这个思路 延迟执行归并选择操作

    因为通常选择器需要遍历整个元素树,所以当多次选择会比较耗时,忽然想到是否能利用setTimeout将多次选择操作归并到一起
    2011-01-01
  • 使用text方法获取Html元素文本信息示例

    使用text方法获取Html元素文本信息示例

    获取文本信息的方法有很多,本例使用的使用的是jquery的text方法,并使用alert将文本弹出,下面是实现代码
    2014-09-09
  • JavaScript实现购物车案例

    JavaScript实现购物车案例

    这篇文章主要为大家详细介绍了JavaScript实现购物车案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • JS获取input file绝对路径的方法(推荐)

    JS获取input file绝对路径的方法(推荐)

    下面小编就为大家带来一篇JS获取input file绝对路径的方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • webpack中的代理配置详解

    webpack中的代理配置详解

    本文主要介绍了webpack中的代理配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • 使用Promise链式调用解决多个异步回调的问题

    使用Promise链式调用解决多个异步回调的问题

    这篇文章主要给大家介绍了使用Promise链式调用解决多个异步回调问题的方法,文中给出了详细的介绍和示例代码,有需要的朋友可以参考借鉴,下面来一起学习学习吧。
    2017-01-01
  • JavaScript操作cookie类实例

    JavaScript操作cookie类实例

    这篇文章主要介绍了JavaScript操作cookie类,实例分析了javascript针对cookie的设置、读取、删除等常用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • Javascript通过控制类名更改样式

    Javascript通过控制类名更改样式

    这篇文章主要介绍了Javascript通过控制类名更改样式,下面来和小编一起来学习吧
    2019-05-05

最新评论