考虑以下JSON对象:
{
"value": 0
}
Run Code Online (Sandbox Code Playgroud)
现在假设我将其映射到.NET类型Foo:
class Foo
{
public double Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
的类型Foo.Value为double,因为Value它并不总是整数值。
使用JSON.NET,效果很好:
Foo deserialized = JsonConvert.DeserializeObject<Foo>(json);
Run Code Online (Sandbox Code Playgroud)
但是,观察当我尝试将对象转换回其JSON表示形式时会发生什么:
string serialized = JsonConvert.SerializeObject(deserialized, Formatting.Indented);
Run Code Online (Sandbox Code Playgroud)
输出:
{
"Value": 0.0
}
Run Code Online (Sandbox Code Playgroud)
注意尾随零吗?我如何摆脱它?
编辑
我怀疑答案将是编写您自己的转换器。如果是这样,那很好,我想我会接受作为答案。我只是想知道是否存在一个我不知道的属性,可以让您指定输出格式(或类似格式)。
看来这是库的硬编码行为:
https://github.com/JamesNK/Newtonsoft.Json/blob/master/Src/Newtonsoft.Json/JsonConvert.cs#L300
如果你想改变行为,你需要编辑库并从源代码重新编译(或选择另一个 JSON 库)
| 归档时间: |
|
| 查看次数: |
3449 次 |
| 最近记录: |