|
@@ -25,61 +25,25 @@ namespace OASystem.API.OAMethodLib
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
- #region null值转空字符串 NewtonsoftJson
|
|
|
+ #region String null值转换(读/写)
|
|
|
|
|
|
- public class NullToEmptyStringResolver : CamelCasePropertyNamesContractResolver
|
|
|
- {
|
|
|
- /// <summary>
|
|
|
- /// 创建属性
|
|
|
- /// </summary>
|
|
|
- /// <param name="type">类型</param>
|
|
|
- /// <param name="memberSerialization">序列化成员</param>
|
|
|
- /// <returns></returns>
|
|
|
- protected override IList<Newtonsoft.Json.Serialization.JsonProperty> CreateProperties(Type type, MemberSerialization memberSerialization)
|
|
|
- {
|
|
|
- return type.GetProperties().Select(c =>
|
|
|
- {
|
|
|
- var jsonProperty = base.CreateProperty(c, memberSerialization);
|
|
|
- jsonProperty.ValueProvider = new NullToEmptyStringValueProvider(c);
|
|
|
- return jsonProperty;
|
|
|
- }).ToList();
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
- public class NullToEmptyStringValueProvider : IValueProvider
|
|
|
+ public class NullJsonConverter : System.Text.Json.Serialization.JsonConverter<string>
|
|
|
{
|
|
|
- private readonly PropertyInfo _memberInfo;
|
|
|
- /// <summary>
|
|
|
- /// 构造函数
|
|
|
- /// </summary>
|
|
|
- /// <param name="memberInfo"></param>
|
|
|
- public NullToEmptyStringValueProvider(PropertyInfo memberInfo)
|
|
|
- {
|
|
|
- _memberInfo = memberInfo;
|
|
|
- }
|
|
|
+ public override bool HandleNull => true;
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 获取Value
|
|
|
- /// </summary>
|
|
|
- /// <param name="target"></param>
|
|
|
- /// <returns></returns>
|
|
|
- public object GetValue(object target)
|
|
|
- {
|
|
|
- var result = _memberInfo.GetValue(target);
|
|
|
- if (_memberInfo.PropertyType == typeof(string) && result == null)
|
|
|
- result = string.Empty;
|
|
|
- return result;
|
|
|
- }
|
|
|
+ public override string Read(
|
|
|
+ ref Utf8JsonReader reader,
|
|
|
+ Type typeToConvert,
|
|
|
+ JsonSerializerOptions options) =>
|
|
|
+ reader.GetString() ?? "";
|
|
|
+
|
|
|
+ public override void Write(
|
|
|
+ Utf8JsonWriter writer,
|
|
|
+ string value,
|
|
|
+ JsonSerializerOptions options) =>
|
|
|
+ writer.WriteStringValue(value ?? "");
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 设置Value
|
|
|
- /// </summary>
|
|
|
- /// <param name="target"></param>
|
|
|
- /// <param name="value"></param>
|
|
|
- public void SetValue(object target, object value)
|
|
|
- {
|
|
|
- _memberInfo.SetValue(target, value);
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
#endregion
|