我有某个 jason 将其反序列化为一个对象,其中一个字段需要解析为十进制
using System;
using Newtonsoft.Json;
using static System.Convert;
using static System.Globalization.CultureInfo;
using static System.Globalization.NumberStyles;
public class OpenOrder
{
...
[JsonProperty("margin")]
public decimal margin;
}
但定期以带点、逗号或指数格式(123.345 或 1.09E + 30)发送数据...
找到了一个选项,但不知何故我不喜欢它。
[JsonProperty("margin")]
private string Margin
{
set { decimal.TryParse(value, Any, InvariantCulture, out margin); }
}
public decimal margin;
也许有人遇到过类似的情况?并提出一些简化的设计?
这是从科学形式解析小数的一个已知问题,甚至有一个修复推送,但看起来它没有包含在.
您可以使用属性
JsonConstructor,然后您不需要创建一个单独的字段:基于@WarisSarwar的回答
要么使用JsonConverter:
它
JsonExponentialConverter可能看起来像这样:@er-shoaib 答案的翻译