C# 将字符串序列化为JSON而不使用\0027

C# 将字符串序列化为JSON而不使用\0027,c#,asp.net,serialization,C#,Asp.net,Serialization,一个相当直截了当的问题。我有以下代码 var json = new JavaScriptSerializer(); var test = json.Serialize("'"); 现在,VisualStudio局部变量监视显示test包含一个值字符串“\”\\u0027\”。是否可以使用ASP.NET中的内置程序使序列化()返回不带\0027格式的序列化字符串 测试所需的结果将是“\”\“\”\“\” 谢谢 正如评论者所提到的,这真的不重要,因为\u0027实际上代表Javascript中的一

一个相当直截了当的问题。我有以下代码

var json = new JavaScriptSerializer();
var test = json.Serialize("'");
现在,VisualStudio局部变量监视显示
test
包含一个值字符串
“\”\\u0027\”
。是否可以使用ASP.NET中的内置程序使
序列化()返回不带
\0027
格式的序列化字符串

测试所需的结果将是
“\”\“\”\“\”


谢谢

正如评论者所提到的,这真的不重要,因为
\u0027
实际上代表Javascript中的一个引用

但是,如果这让您感到困扰,您可能希望尝试使用JSON.NET,它在编码字符串中保留单引号。

请尝试以下方法


var json=JsonConvert.SerializeObject(obj)

序列化后,必须使用此表达式替换JSON字符串。下面是我的代码示例,以及在提供json输出时使用的函数

string json = obj.ToJSON();

json = System.Text.RegularExpressions.Regex.Unescape(json);

File.WriteAllText("<DirectoryFile>.json", json);

public static string ToJSON(this object obj)
{
    var serializer = new JavaScriptSerializer();
    serializer.MaxJsonLength = Int32.MaxValue;
    JavaScriptSerializer js = new JavaScriptSerializer();

    return js.Serialize(obj);
}
string json=obj.ToJSON();
json=System.Text.RegularExpressions.Regex.Unescape(json);
WriteAllText(“.json”,json);
公共静态字符串ToJSON(此对象obj)
{
var serializer=新的JavaScriptSerializer();
serializer.MaxJsonLength=Int32.MaxValue;
JavaScriptSerializer js=新的JavaScriptSerializer();
返回js.Serialize(obj);
}

反序列化后是否检查了输出?它将自动解析特殊字符无问题<代码>\u0027
等于
'
?还有其他问题吗?调试设置中可能有一个选项控制多字节字符的显示方式。将
'
替换为
\u0027
不是问题,或者取决于您如何使用序列化结果。序列化通过Web服务器传输,然后反序列化是序列化最常用的用法,而不是唯一的用法。欢迎使用堆栈溢出!请添加一些解释,说明此代码为何有助于OP。这将有助于提供未来观众可以从中学习的答案。有关详细信息,请参阅。它困扰着microsoft azure;]Json.NETNUGET包就是这样做的。这是它的页面: