[英].NET 5 - Json Serialization with comma as decimal separator
考虑到当前语言环境,有没有办法在 controller 中序列化 JsonResult? 在我的例子中,当语言设置为意大利语时,我希望十进制值的分隔符是“,”而不是“。”。
JsonDataTable<SomeObj> res = new JsonDataTable<SomeObj>(someObjList);
return new JsonResult(res);
这是特定于文化的十进制转换器的示例 - 从此处复制:
using System.Text.Json;
using System.Text.Json.Serialization;
public class CultureSpecificQuotedDecimalConverter : JsonConverter<decimal>
{
public override decimal Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
if (reader.TokenType == JsonTokenType.String)
{
return Convert.ToDecimal(reader.GetString(), System.Globalization.CultureInfo.GetCultureInfo("es-ES"));
}
else
{
return reader.GetInt32();
}
}
//Write() not shown
}
像这样使用:
using System.Text.Json;
var jsonOptions = new JsonSerializerOptions();
jsonOptions.Converters.Add(new CultureSpecificQuotedDecimalConverter());
var movie = JsonSerializer.Deserialize<Movie>(movieJson, jsonOptions);
Console.WriteLine($"Year={movie.YearReleased} Revenue={movie.Revenue}");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.