【问题标题】:Trouble Serializing To JSON Using JavaScriptSerializer使用 JavaScriptSerializer 序列化为 JSON 时遇到问题
【发布时间】:2012-04-30 21:27:09
【问题描述】:

我在使用 System.Web.Script.Serialization.JavaScriptSerializer 将对象序列化为 JSON 字符串时遇到了一些问题。每当我尝试这样做时,我的字符串都会自动进行 html 编码。有没有办法防止这种情况发生?如果可能的话,我真的很想避免使用外部库(代码适用于 .NET 4)。这是我的代码:

class Program
{
    static void Main(string[] args)
    {
        string myHtml = "<div class=\"blueBackground\">This is a really cool div:)</div>";
        int someOtherValue = 5;

        var jsonSerializer = new JavaScriptSerializer();

        string jsonObj = jsonSerializer.Serialize(new MyClass
        {
            StringProperty = myHtml,
            IntProperty = someOtherValue
        });

        Console.WriteLine(jsonObj);
        Console.ReadLine();
    }

    class MyClass
    {
        public string StringProperty { get; set; }
        public int IntProperty { get; set; }
    }
}

输出字符串

{"StringProperty":"\u003cdiv class=\"blueBackground\"\u003e这是一个 真的很酷 div:)\u003c/div\u003e","IntProperty":5}

谢谢!

【问题讨论】:

    标签: .net asp.net-mvc-3 javascriptserializer


    【解决方案1】:

    您的字符串不是 HTML 编码的。它们是 javascript 编码的。 JSON 旨在由 javascript 解释器读取,并且您的输出是完全有效的 javascript,如 this live demo 所示。它是有效的 JSON,任何标准的 JSON 反序列化器都能够理解这个输出并将其反序列化回原始字符串。所以没什么好担心的。

    【讨论】:

    • 哇,谢谢达林:)我什至不知道有这样的事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-31
    相关资源
    最近更新 更多