我正在做一个非常简单的 ulong
:
static void Main(string[] args)
{
try
{
var data = ulong.MaxValue;
var serialized = JsonConvert.SerializeObject(data);
var res = JsonConvert.DeserializeObject<ulong>(serialized);
Console.WriteLine(res);
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
Console.ReadKey();
}
在普通的控制台应用程序中,这可以正常工作。但是,在.NET Core Console应用程序中执行此操作时,它会失败,但有以下错误:
JSON Integer 184444444073709551615对于INT64而言太大或太小。路径'',第1行,位置20。
在我看来,这试图转换为long
而不是ulong
。这里怎么了?这是JSON .NET还是.NET CORE中的错误?
它是newtonsoft.json中的一个错误,将从 9.0.2
(相关问题)开始修复。
我在项目中检查了您的代码,在project.json
中添加了"Newtonsoft.Json": "9.0.2-beta001"
的直接引用后,问题已经消失。