网页返回结果加两位小数.00 API
Adding two decimal point .00 when returning the result from web API
我有一个 asp.net 核心网络 API 项目,当我将 JSON 结果返回给 UI 时,所有小数值都转换为整数,当我调试控制器时,我可以看到两个小数点 .00,但是当我在控制台网络选项卡中检查它时,它是整数。
那么,我如何添加一个格式化程序来保持来自数据库的十进制值,它不应该在到达 UI 时将其转换为整数。
当我调试控制器时-
在控制台网络选项卡-
您可以为小数点自定义序列化程序 属性
public class TestModel
{
[JsonConverter(typeof(DecimalConverter))]
public decimal Price { get; set; }
}
public class DecimalConverter : JsonConverter
{
public override bool CanConvert(Type objectType)
{
return (objectType == typeof(decimal));
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
writer.WriteValue(((decimal)value).ToString("0.00"));
}
public override bool CanRead
{
get { return false; }
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
throw new NotImplementedException();
}
}
结果:
我有一个 asp.net 核心网络 API 项目,当我将 JSON 结果返回给 UI 时,所有小数值都转换为整数,当我调试控制器时,我可以看到两个小数点 .00,但是当我在控制台网络选项卡中检查它时,它是整数。
那么,我如何添加一个格式化程序来保持来自数据库的十进制值,它不应该在到达 UI 时将其转换为整数。
当我调试控制器时-
在控制台网络选项卡-
您可以为小数点自定义序列化程序 属性
public class TestModel
{
[JsonConverter(typeof(DecimalConverter))]
public decimal Price { get; set; }
}
public class DecimalConverter : JsonConverter
{
public override bool CanConvert(Type objectType)
{
return (objectType == typeof(decimal));
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
writer.WriteValue(((decimal)value).ToString("0.00"));
}
public override bool CanRead
{
get { return false; }
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
throw new NotImplementedException();
}
}
结果: