gpt4 book ai didi

asp.net-mvc - JsonSerializer - 使用 'N2' 格式序列化小数位

转载 作者:行者123 更新时间:2023-12-02 10:48:29 25 4
gpt4 key购买 nike

我正在使用 Newtonsoft.Json.JsonSerializer 序列化小数。

如何将其设置为序列化只有 1 位小数的十进制数以在末尾使用 0。

即3.5 序列化为“3.50”?

最佳答案

您必须编写自己的自定义 JsonConverter 并使用它来拦截 decimal 类型,以便您可以更改其序列化方式。这是一个例子:

public class DecimalFormatConverter : JsonConverter
{
public override bool CanConvert(Type objectType)
{
return (objectType == typeof(decimal));
}

public override void WriteJson(JsonWriter writer, object value,
JsonSerializer serializer)
{
writer.WriteValue(string.Format("{0:N2}", value));
}

public override bool CanRead
{
get { return false; }
}

public override object ReadJson(JsonReader reader, Type objectType,
object existingValue, JsonSerializer serializer)
{
throw new NotImplementedException();
}
}

要使用它,只需将此自定义转换器的新实例传递给 SerializeObject 方法即可:

var json = JsonConvert.SerializeObject(yourObject, new DecimalFormatConverter());

关于asp.net-mvc - JsonSerializer - 使用 'N2' 格式序列化小数位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17871720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com