将浮点数反序列化为 'float' 类型而不是 Json.NET 中的默认 'double'

Deserialize float number into a 'float' type instead of default 'double' in Json.NET

其实题中已经有问题了。提供更多详细信息,我必须指定我知道自定义转换器并希望避免这种情况。我希望可能有一个 setting,我可以使用它来调整序列化程序以默认使用 float 而不是 double

例如,我们可以使用 FloatParseHandling.Decimal 来代替 decimal,而不是 float

模型,我希望将其反序列化为:

public class Figure
{
    public float SideA { get; set; }
    public float SideB { get; set; }
    public float SideC { get; set; }
}

反序列化没有问题。显示您的代码

    #r "nuget:Newtonsoft.Json/13.0.1"
    using Newtonsoft.Json;
    using Newtonsoft.Json.Linq;

    var json = "{ \"num\": 1.5 }";

    var jAnon = JsonConvert.DeserializeAnonymousType(json , new { num = 0.0f }); // Use anonymous type
    var jClass = JsonConvert.DeserializeObject<Json>(json); // use class
    var jObj = JObject.Parse(json);

    var value = jObj.GetValue("num");
    value.Value<float>(); // use JObject

    class Json {
      public float Num {get;set;}
    }