2012-04-30 4 views
1

У меня возникли проблемы с сериализацией объекта в строку JSON с использованием System.Web.Script.Serialization.JavaScriptSerializer. Всякий раз, когда я пытаюсь это сделать, мои строки автоматически кодируются html. Есть ли способ предотвратить это? Мне бы очень хотелось избежать использования внешней библиотеки, если это возможно (код для .NET 4). Вот мой код:Сериализация проблем в JSON с использованием JavaScriptSerializer

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/дел \ u003e "," IntProperty ": 5}

Спасибо!

ответ

3

Ваши строки не закодированы в HTML. Они закодированы в javascript. JSON предназначен для чтения с помощью javascript-интерпретаторов, и ваш вывод является абсолютно корректным javascript, как показано в this live demo. Это действительно JSON, и любой стандартный десериализатор JSON сможет понять этот вывод и десериализовать его обратно в исходную строку. Так что не о чем беспокоиться.

+0

Ничего себе, спасибо Дарин :) Я понятия не имел, что даже такое было. – Andrew

Смежные вопросы