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

时间:2013-04-16 23:07:08

标签: c# asp.net serialization

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

var json = new JavaScriptSerializer();
var test = json.Serialize("'");

现在,Visual Studio本地变量监视显示test包含值"\"\\u0027\""的字符串。是否有可能使用ASP.NET中的内置使Serialize();返回没有\0027格式的序列化字符串?

test的预期结果为"\"\'\""

谢谢!

3 个答案:

答案 0 :(得分:0)

尝试以下

var json = JsonConvert.SerializeObject(obj);

答案 1 :(得分:0)

序列化后,您必须使用此表达式替换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);
}

答案 2 :(得分:-1)

正如评论者所提到的,这真的无关紧要,因为\u0027字面上代表了Javascript中的单引号。

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