1

私はJSON.stringify以下を作成するために使用しています:

{"id":"3172043","Img":"../assets/7/14/NPCgunnerStanding.png","ImgWidth":145,"ImgHeight":210,"Width":"145","Height":"210","Left":649,"Top":165,"Parent":"3172015","MouseOver":"label({HTML: "Gunner"})","Idle":"animate({ rate:100 , pause:4000 })topImage("../assets/img/npc-exclamation3.gif")","MouseOut":"label({})","Proximity":"","Click":"modal({title:"Gunner",iframe: "../assets/7/modals/BEFGunner.php"})"}

そしてそれを私のデータベースに保存します。この部分は正常に動作していますが、もう一度調べると、括弧内の引用符が原因でオブジェクトのエラーが発生します。

これらの引用だけをどのように回避できますか?

これらをチェックする呼び出しの置換関数をまとめ始めましたstringifyが、面倒だと思われるようになり、正規表現などを使用して一度にすべてを実行する方法を考え出したいと考えていました。

手伝ってください :)

4

3 に答える 3

1

最低でも逃げる必要がある

  • "->\"
  • \\->\\
  • CR ->\r
  • LF ->\n

JSでそれを行うには、これを試してください

var charToJson = { '"': '\\"', '\\': '\\\\', '\r': '\\r', '\n': '\\n' };

var JSONStringLiteral = '"'
    + myPlainTextString.replace(/[\\\"\r\n]/g, function (c) { return charToJson[c]; })
    + '"';

または、最新のブラウザーで実行している場合は、JSON.stringifyこれを行う必要があります。

JSON.stringify('{"foo":"bar"}') === '"{\\"foo\\":\\"bar\\"}"'
于 2012-11-01T19:52:06.867 に答える
0

\次のように使用します。

{"key":"text (\"blabla\")"}

または、よりクリーンなコードの場合:

{'key':'text ("blabla")'}

ただし、次のように"との両方がある場合は選択の余地がありません。'

{"key":"text 'blabla' \"otherblabla\""}
于 2012-11-01T19:55:19.103 に答える