我正在使用 Json.net 反序列化 Web API 调用接收到的 json 数据。某些字段通常包含 html 编码的字符,如 "
或 &
如何在反序列化期间自动解码这些字符?
我得出了 2 种可能的解决方案:
在属性 setter 中调用
System.Web.HttpUtility.HtmlDecode()
,例如:public string Title { set { title = System.Web.HttpUtility.HtmlDecode(value); } }
在
ReadJson()
方法中编写调用System.Web.HttpUtility.HtmlDecode()
的自定义 JsonConverter: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)); } }
但是是否有任何内置解决方案允许在 json 反序列化期间执行 html 解码而无需额外代码?
最佳答案
System.Net.WebUtility.HtmlDecode()
或
HttpUtility.HtmlDecode()
是要走的路,没有关于 JsonSerializer 的内置内容。
关于c# - 在 Json 反序列化期间解码 Html 编码的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35973032/