2012-04-30 18 views
1

System.Web.Script.Serialization.JavaScriptSerializerを使用してオブジェクトをJSON文字列にシリアル化するときに問題が発生します。私がそれをやろうとすると、私の文字列は自動的にhtmlエンコードされます。これが起こらないようにする方法はありますか?可能であれば、外部ライブラリの使用を避けたい(コードは.NET 4用です)。ここに私のコードがあります:\ u003c/DIV): "\のu003cdivクラス= \" blueBackground \ "\ u003eThisは 本当にクールdiv要素です:JavaScriptSerializerを使用したJSONシリアル化のトラブル

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" を出力します\ u003e "、" IntProperty ":5}

ありがとうございます!

答えて

3

あなたの文字列はHTMLでエンコードされていません。それらはjavascriptでエンコードされています。 JSONはjavascriptインタプリタによって読み込まれることを意図しており、出力はthis live demoのように完全に有効なjavascriptです。これは有効なJSONであり、標準のJSONデシリアライザはこの出力を理解し、元の文字列に逆シリアル化します。だから心配することはありません。

+0

うわー、感謝ダーリン:)私はそんなことさえあったことは知らなかった。 – Andrew

関連する問題