1

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}

ありがとう!

4

1 に答える 1

3

文字列はHTMLエンコードされていません。それらはjavascriptでエンコードされています。JSONはjavascriptインタープリターによって読み取られることを目的としており、このライブデモで見られるように、出力は完全に有効なjavascriptです。これは有効なJSONであり、標準のJSONデシリアライザーはこの出力を理解し、元の文字列にデシリアライズすることができます。だから心配することは何もありません。

于 2012-04-30T21:34:10.440 に答える