2012-04-30 20 views
1

我在使用System.Web.Script.Serialization.JavaScriptSerializer將對象序列化爲JSON字符串時遇到了一些麻煩。每當我嘗試這樣做時,我的字符串都會自動進行html編碼。有沒有辦法來防止這種情況發生?如果可能,我真的想避免使用外部庫(代碼是.NET 4)。這裏是我的代碼:使用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」: 「\ u003cdiv類= \」 blueBackground \「\ u003eThis是 真的很酷格:)\ u003c/DIV \ u003e「,」IntProperty「:5}

謝謝!

回答

3

您的字符串不是HTML編碼的。他們是JavaScript編碼。 JSON旨在被JavaScript解釋器讀取,並且您的輸出是完全有效的JavaScript,如this live demo中所示。它是有效的JSON,任何標準的JSON解串器都能理解這個輸出並將其反序列化爲原始字符串。所以沒有什麼可擔心的。

+0

哇,謝謝Darin :)我甚至都不知道有這樣的事情。 – Andrew

相關問題