Jquery用户输入到JSON中

Jquery用户输入到JSON中,jquery,json,encode,Jquery,Json,Encode,我有一个复杂的表单,用户有一些选择,也有一些文本区域填写信息。表单运行良好,数据通过JSON传递到我的MVC控制器,一切正常 然而,作为用户,我发现一些用户使用特殊字符,如“£$%&()等,这些字符导致JSON格式不正确,因此控制器操作没有正确绑定 因此,我的问题是如何对用户输入的文本进行编码,从而形成有效的JSON 我目前收集数据的方式是: var TelNo = $("#TelNo"). var EmailMessage = $("#EmailMessage").val(); 谢谢 Cli

我有一个复杂的表单,用户有一些选择,也有一些文本区域填写信息。表单运行良好,数据通过JSON传递到我的MVC控制器,一切正常

然而,作为用户,我发现一些用户使用特殊字符,如“£$%&()等,这些字符导致JSON格式不正确,因此控制器操作没有正确绑定

因此,我的问题是如何对用户输入的文本进行编码,从而形成有效的JSON

我目前收集数据的方式是:

var TelNo = $("#TelNo").
var EmailMessage = $("#EmailMessage").val();
谢谢


Cliff.

对于json的字符转义,没有真正的函数

这样做的函数应该是这样的

function makeSafe(jsonf){
  jsonf= JSON.stringify(jsonf);
  jsonf = jsonf.replace(/\\n/g, "\\n")
                                      .replace(/\\'/g, "\\'")
                                      .replace(/\\"/g, "\\"")
                                      .replace(/\\&/g, "\\&")
                                      .replace(/\\r/g, "\\r")
                                      .replace(/\\t/g, "\\t")
                                      .replace(/\\b/g, "\\b")
                                      .replace(/\\f/g, "\\f");
  return jsonf;
}
那你就可以做了

EmailMessage  = makeSafe(EmailMessage);
我已经将它添加到我的字符串对象中,如下所示,以便在需要时可以引用它

String.prototype.makeSafe= function() {
    return this.replace(/\\n/g, "\\n")
               .replace(/\\'/g, "\\'")
               .replace(/\\"/g, "\\"")
               .replace(/\\&/g, "\\&")
               .replace(/\\r/g, "\\r")
               .replace(/\\t/g, "\\t")
               .replace(/\\b/g, "\\b")
               .replace(/\\f/g, "\\f");
};
var EmailMessage = $("#EmailMessage").val()
EmailMessage = EmailMessage.makeSafe();

太棒了,我刚开始走这条路,但你有一个完美的解决方案,谢谢。