我正在使用 Json.net 反序列化 Web API 调用收到的 json 数据。某些字段通常具有 html 编码字符,例如"
or &
如何在反序列化期间自动解码这些字符?
我想到了两种可能的解决方案:
-
Calling System.Web.HttpUtility.HtmlDecode()
在属性设置器中,例如:
public string Title
{
set
{
title = System.Web.HttpUtility.HtmlDecode(value);
}
}
-
编写调用的自定义 JsonConverterSystem.Web.HttpUtility.HtmlDecode()
in ReadJson()
method:
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()
or
HttpUtility.HtmlDecode()
这是要走的路,没有任何关于 JsonSerializer 的内置内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)