jquery/json:不会保存'和\

Kei*_* L. 0 javascript jquery json special-characters

我用jquery和json保存了一个文本.

我正在使用.text()获取textarea的文本并使用json保存它.除\和'之外的所有特殊字符都会被保存.

如果我尝试保存%&$§/////blaääüü**´~+它的工作,但如果我尝试保存 %&$§/////blaääüü**´~+\\\\\\\'''''它不起作用!

我怎么解决这个问题?

编辑

保存的代码是:( 提取)

$.ajax({
        url: "myURI"
                , type: "POST"
                , dataType: "json"
                , data:
                "{ " +
                "', 'text': '" + $('#myText').text() +
                "' }"
                , contentType: "application/json; charset=utf-8";
        });
Run Code Online (Sandbox Code Playgroud)

Fel*_*ing 6

好的,您的主要问题是您创建的JSON无效并且您"手动"创建它.字符串连接的结果是:

{ ', 'text': '%&$§/////blaääüü**´~+\\\'''''' }
Run Code Online (Sandbox Code Playgroud)

这看起来并不像JSON.

使用JSON.stringify [MDN](也可使用外部库):

data: JSON.stringify({text: $('#myText').text()})
Run Code Online (Sandbox Code Playgroud)

其他问题:

  • JSON中的键必须是双引号,而不是单引号.

  • 文本包含转义字符(\)和单引号(')的事实会与您创建的最终字符串混淆.这就是为什么你应该将内容和创建正确地转移到浏览器.

  • 根据您使用的服务器端语言,您应该将JSON分配给密钥,以便将正确的键值对发送到服务器:

    data: {json: JSON.stringify(...)}
    
    Run Code Online (Sandbox Code Playgroud)