转json 可用

 public class DecimalCoverterUselessZero : JsonConverter
    {
        private void dumpNumArray<T>(JsonWriter writer, T n)
        {
            var s = n.ToString();
            if (s.EndsWith(".0"))
                writer.WriteRawValue(s.Substring(0, s.Length - 2));
            else if (s.Contains("."))
                writer.WriteRawValue(s.TrimEnd('0').TrimEnd('.'));
            else
                writer.WriteRawValue(s);
        }
        public override void WriteJson(JsonWriter writer, object value,
           JsonSerializer serializer)
        {
            Type t = value.GetType();
            if (t == dblArrayType)
                dumpNumArray<double>(writer, (double)value);
            else if (t == decArrayType)
                dumpNumArray<decimal>(writer, (decimal)value);
            else
                throw new NotImplementedException();
        }
        private Type dblArrayType = typeof(double);
        private Type decArrayType = typeof(decimal);
        public override bool CanConvert(Type objectType)
        {
            if (objectType == dblArrayType || objectType == decArrayType)
                return true;
            return false;
        }
        public override bool CanRead
        {
            get { return false; }
        }
        public override object ReadJson(JsonReader reader, Type objectType,
            object existingValue, JsonSerializer serializer)
        {
           // var it = (long)reader.Value;

            throw new NotImplementedException();
        }
    

    }

属性 特性

 [JsonConverter(typeof(DecimalCoverterUselessZero))]
        public decimal? DailyRent { get; set; }

sqlsugar 

}).ToJson();  是确实转了,可我想要转成datatable

其他测试

   JsonSerializerSettings s1 = new JsonSerializerSettings();
            s1.Converters.Add(new DecimalCoverterUselessZero());  

          var  test  = JsonConvert.SerializeObject(12.3600000, null, s1);    

 sqlsugar 确实给了方法是先json 再table,也能实现.感觉有点点别虐.

最终还是放弃了这种 先json再table

查完返回datatable之后,做个循环,再对具体字段进行去无效0. 这样看起来更为舒坦一点,看来对于精度要求较高的字段处理,程序上会增加了一些步骤.

 

posted on 2022-06-10 13:43  小石头的一天  阅读(317)  评论(0编辑  收藏  举报