Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用JSON.NET对撇号进行编码_Jquery_Asp.net Mvc 3_Razor_Json.net - Fatal编程技术网

Jquery 使用JSON.NET对撇号进行编码

Jquery 使用JSON.NET对撇号进行编码,jquery,asp.net-mvc-3,razor,json.net,Jquery,Asp.net Mvc 3,Razor,Json.net,比如说我有一门课 public class MyTestClass { public MyTestClass() { Testing = "check ' out"; } public string Testing { get; set; } } 和JavascriptSerializer/JsonNet序列化程序,如: public IHtmlString ToJsonNet(object value) { return new Mvc

比如说我有一门课

public class MyTestClass
{
    public MyTestClass()
    {
        Testing = "check ' out";
    }
    public string Testing { get; set; }
}
和JavascriptSerializer/JsonNet序列化程序,如:

public IHtmlString ToJsonNet(object value)
{
    return new MvcHtmlString(JsonConvert.SerializeObject(value));
}

public IHtmlString ToJson(object value)
{
    var json = new JavaScriptSerializer();
    return new MvcHtmlString(json.Serialize(value));
}
那么在我看来

 @(Serializers.ToJsonNet(new MyTestClass()))
 @(Serializers.ToJson(new MyTestClass()))
JsonNet将返回{“Testing”:“check'out”},而JavascriptSerializer将返回{“Testing”:“check\u0027 out”}。我希望创建一个javascript对象,如

var model = $.parseJSON('@jsonString');
但这只有在撇号被编码的情况下才有效。否则,撇号会使我的JavaScript看起来像

var model = $.parseJSON('{"Testing":"check ' out"}');
这会失败,因为插入的撇号使
parseJSON
过早地转义我的字符串


JavascriptSerializer默认情况下将撇号编码为\u0027,而JSON.NET(我想使用)则不编码。如何更改JSON.NET以实现此目的?有没有我错过的场景?有没有其他方法可以将JSON字符串解析为javascript,其中撇号是OK的?

下面的答案表明两者应该是等价的。


如果parseJSON调用失败,那么参数中的双引号而不是单引号可能会有所帮助。

您是否尝试过用“\”转义撇号

类似于
Testing=“check\'out”


你们也应该看看这篇文章,这里似乎有一些有趣的答案

试试这个:


因为jsonstring包含双引号和单引号,在parseJson中使用它们中的任何一个都会导致失败,因为它很早就逃逸了jsonString。您使用的是哪个版本的jquery?您能用JSON.NET解决这个问题吗?当我从Microsoft Word将文本粘贴到html文本区域,然后使用该值在C#中序列化它时,撇号不会序列化为\u0027,而是保留为“'”字符。有什么想法吗?
{"Testing":"check \u0027 out"}