System.Text.Json不会自动把json中的字符串转换为int类型,需要添加NumberHandling配置。
public class ClassWithInts
{
public int NumberOne {
get; set; }
public int NumberTwo {
get; set; }
}
var options = new JsonSerializerOptions
{
NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString
};
string json = @"{""Number1"":1,""Number2"":""2""}";
ClassWithInts @class = JsonSerializer.Deserializer<ClassWithInts>(json, options);
Console.WriteLine(@class.NumberOne);
Console.WriteLine(@class.NumberTwo);
json = JsonSerializer.Serialize(@class, options);
Console.WriteLine(json);