|  | @@ -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
 |