json文字列値の一重引用符を¥ 'に置き換えようとしていますが、リプレイサ関数を使用しようとしても機能しません。JSON stringifyはリプレイサ関数を使用して一重引用符をエスケープできません
var myObj = {
test: "'p'"
}
var replacer = function (key, value) {
if (typeof value === 'string')
return value.replace(/'/g, "\\'");
else return value;
};
var JSONstring = JSON.stringify(myObj, replacer, ' ');
alert(JSONstring);
https://jsfiddle.net/4fsqozek/1/
ただし、文字列が
var JSONstring = JSON.stringify(myObj).replace(/'/g, "\\'");
私は細かい作品を使用する正規表現を代用機能を使用せずに、次のように作成された後、私はただ単純な置き換えない場合。
EDIT - 明確化 - 使用して代用関数の出力値は、誰もがこれを説明することができ、私は
を期待していものではありません。この\\「のp \\」、のような二重のバックスラッシュが含まれていますか?
それはすべて私は問題ではありませんでした内側た文字列 – erotavlas
のように扱われていたものと思っ二重引用符の内側に包まれていたので、私は、私は無効なJSONの結果んしようとしていたものを実現していませんでした@ erotavlasはい、私は言及していませんでしたが、実際には、強制的に1つのバックスラッシュを含むJSONはJSON仕様に準拠していませんでした。 – Paolo