C# Json.NET十进制序列化问题
如果我有一个代表一些日元(即指数零货币)金额的小数点,例如31313,我会看到Json.NET将默认值序列化为31313.0C# Json.NET十进制序列化问题,c#,decimal,json.net,C#,Decimal,Json.net,如果我有一个代表一些日元(即指数零货币)金额的小数点,例如31313,我会看到Json.NET将默认值序列化为31313.0 有没有办法让它序列化文本值313呢?通过实现您自己的转换器,您可以将其序列化为 var str= JsonConvert.SerializeObject( new {s="aaa",d=(decimal)3131313}, new MyConverter()); - public class MyConverter : JsonConverter {
有没有办法让它序列化文本值313呢?通过实现您自己的转换器,您可以将其序列化为
var str= JsonConvert.SerializeObject(
new {s="aaa",d=(decimal)3131313},
new MyConverter());
-
public class MyConverter : JsonConverter
{
public override bool CanConvert(Type objectType)
{
if (objectType == typeof(decimal)) return true;
return false;
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
throw new NotImplementedException();
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
writer.WriteValue(Convert.ToInt64(value));
}
}