2012-04-30 6 views
1

System.Web.Script.Serialization.JavaScriptSerializer를 사용하여 JSON 문자열로 객체를 직렬화하는 데 문제가 있습니다. 그것을 시도 할 때마다 내 문자열은 자동으로 html로 인코딩됩니다. 이런 일이 발생하지 않도록하는 방법이 있습니까? 가능한 경우 외부 라이브러리를 사용하지 않는 것이 좋습니다 (코드는 .NET 4 용입니다). 그것은 문자열JavaScriptSerializer를 사용하여 JSON에 직렬화 할 때 문제 발생

{ "StringProperty"출력

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; } 
    } 
} 

: 여기에 내 코드입니다 \ "의 u003cdiv 클래스 = \"blueBackground \ "를 \ u003eThis는 정말 멋진 사업부는 다음과 같습니다) \ u003c/DIV \ u003e ","IntProperty ": 5}

감사합니다.

답변

3

문자열은 HTML로 인코딩되지 않습니다. 그들은 자바 스크립트로 인코딩되어 있습니다. JSON은 자바 스크립트 인터프리터에서 읽으므로 this live demo과 같이 완벽하게 유효한 자바 스크립트입니다. 그것은 유효한 JSON이고 모든 표준 JSON 디시리얼라이저는이 출력을 이해하고 원래 문자열로 역 직렬화 할 수 있습니다. 그래서 걱정할 것은 없습니다.

+0

와우, 감사합니다. Darin :) 나는 그런 곳이 있다는 것을 전혀 몰랐습니다. – Andrew