ningshuxia
8 天以前 1519533649b43337d214523f7cd075edf237b3f7
02-desktop/Component/IStation.Newtonsoft/JsonHelper.cs
@@ -3,6 +3,54 @@
namespace IStation
{
    ///// <summary>
    ///// json辅助类
    ///// </summary>
    //public class JsonHelper
    //{
    //    /// <summary>
    //    /// 对象转为json
    //    /// </summary>
    //    public static string Object2Json<T>(T t)
    //    {
    //        if (t == null)
    //            return default;
    //        return JsonConvert.SerializeObject(t);
    //    }
    //    /// <summary>
    //    /// 对象转为格式 json
    //    /// </summary>
    //    public static string Object2FormatJson<T>(T t)
    //    {
    //        if (t == null)
    //            return default;
    //        return JsonConvert.SerializeObject(t, Formatting.Indented);
    //    }
    //    /// <summary>
    //    /// json转为对象
    //    /// </summary>
    //    public static T Json2Object<T>(string json)
    //    {
    //        if (string.IsNullOrEmpty(json))
    //            return default;
    //        try
    //        {
    //            return JsonConvert.DeserializeObject<T>(json);
    //        }
    //        catch (Exception ex)
    //        {
    //            var a = ex.Message;
    //            return default;
    //        }
    //    }
    //}
    /// <summary>
    /// json辅助类
    /// </summary>
@@ -15,7 +63,10 @@
        {
            if (t == null)
                return default;
            return JsonConvert.SerializeObject(t);
            return JsonConvert.SerializeObject(t, new JsonSerializerSettings
            {
                Converters = new[] { new CustomFloatConverter() }
            });
        }
        /// <summary>
@@ -25,7 +76,10 @@
        {
            if (t == null)
                return default;
            return JsonConvert.SerializeObject(t, Formatting.Indented);
            return JsonConvert.SerializeObject(t, Formatting.Indented, new JsonSerializerSettings
            {
                Converters = new[] { new CustomFloatConverter() }
            });
        }
        /// <summary>
@@ -44,9 +98,35 @@
                var a = ex.Message;
                return default;
            }
        }
        }
    public class CustomFloatConverter : JsonConverter
    {
        public override bool CanConvert(Type objectType)
        {
            return objectType == typeof(double) || objectType == typeof(float);
        }
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            if (reader.TokenType == JsonToken.String)
            {
                return Convert.ToDouble(reader.Value.ToString());
            }
            return reader.Value;
        }
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            if (value is double)
            {
                writer.WriteValue($"{value:N5}"); // 保留4位小数
            }
            else if (value is float)
            {
                writer.WriteValue($"{value:N5}"); // 保留4位小数
            }
        }
    }
}