6

我得到一个像这样的 json 对象

{
    "First": "MyName's",
     "Last": "MyLast"
}

我想对这个对象进行字符串化,以便 ' 的价值变成\' 它可以是 's 或 'S 或 'anything

我正在使用 JSON.stringify(json_obj) 但它给了我字符串

"{"First":"MyName's","Last":"MyLast"}"

你可以看到 MyName's 我想要这个 MyName\'s

4

2 回答 2

10

如果您要拥有不止一次这样的值,请尝试使用正则表达式替换以防万一,

.stringify(data).replace(/'/g, "\\'")

演示:http: //jsfiddle.net/qMsyg/2/

于 2012-10-04T14:57:57.010 回答
5

字符串化后,json只需应用replace("'", "\'");

JSON.stringify(json).replace("'", "\'");

或者您可以在方法中使用替换参数stringify()

JSON.stringify(json, function(key, value) {
   return value.replace("'", "\'");
})

注意: 正如@vega 所指出的,replace("'", "\'")只会替换第一次出现。如果您有更多值要转义,请使用正则表达式(如replace(/'/g, "\\'"))。

选择最适合您需求的那一款

于 2012-10-04T14:55:03.160 回答