gpt4 book ai didi

c# - 将 double 序列化为 JSON 时的小数精度为零

转载 作者:太空狗 更新时间:2023-10-29 23:23:01 26 4
gpt4 key购买 nike

考虑以下 JSON 对象:

{
"value": 0
}

现在假设我将其映射到 .NET 类型 Foo:

class Foo
{
public double Value { get; set; }
}

Foo.Value 的类型是double,因为Value 并不总是整数值。

使用 JSON.NET,效果非常好:

Foo deserialized = JsonConvert.DeserializeObject<Foo>(json);

但是,观察当我尝试将对象转换回其 JSON 表示时会发生什么:

string serialized = JsonConvert.SerializeObject(deserialized, Formatting.Indented);

输出:

{
"Value": 0.0
}

注意到尾随零了吗?我该如何摆脱它?

编辑

我怀疑答案是编写您自己的转换器。如果是,那很好,我想我会接受它作为答案。我只是想知道是否可能存在一个我不知道的属性可以让您指定输出格式(或类似格式)。

最佳答案

这似乎是库的硬编码行为:

https://github.com/JamesNK/Newtonsoft.Json/blob/master/Src/Newtonsoft.Json/JsonConvert.cs#L300

如果您想改变行为,您需要编辑库并从源代码重新编译(或选择另一个 JSON 库)

关于c# - 将 double 序列化为 JSON 时的小数精度为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21207259/

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