2016-03-13 98 views
1

我正在使用Json.net反序列化Web API調用接收的Json數據。有些字段通常具有html編碼字符,例如"&如何在反序列化期間自動解碼此字符?解碼Json反序列化期間的Html編碼字符

我來到了2級可能的解決方案:

  1. 在屬性setter調用System.Web.HttpUtility.HtmlDecode()像:

    public class HtmlEncodingConverter : Newtonsoft.Json.JsonConverter 
    { 
        public override bool CanConvert(Type objectType) 
        { 
         return objectType == typeof(String); 
        } 
    
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) 
        { 
         return System.Web.HttpUtility.HtmlDecode((string)reader.Value); 
        } 
    
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) 
        { 
         writer.WriteRawValue(System.Web.HttpUtility.HtmlEncode((string)value)); 
        } 
    } 
    
:在 ReadJson()方法調用 System.Web.HttpUtility.HtmlDecode()

public string Title 
{ 
    set 
    { 
     title = System.Web.HttpUtility.HtmlDecode(value); 
    } 
} 
  • 編寫自定義JsonConverter

    但是,有沒有任何內置的解決方案,允許在json反序列化過程中執行html解碼而無需額外的代碼?

  • 回答

    2
    System.Net.WebUtility.HtmlDecode() 
    

    HttpUtility.HtmlDecode() 
    

    是要走的路,沒有建在關於JsonSerializer。