0

我有一个循环通过 json 并获取值的程序。这可以找到直到它得到一个高于 int32 处理的整数。

2021-09-10 08:00:02.7576|ERROR|System.OverflowException: Value was either too large or too small for an Int32.

是否可以在下面同时处理 int32 和 int64 ?我尝试使用以下方法,但似乎没有用

int amount = (int)resource.First.ToObject<long>();
foreach (JToken resource in resources["responseData"]["resources"].ToList())
                  {
                     string propName = resource.ToObject<JProperty>().Name;
                            //int amount = (int)resource.First.ToObject<long>();
                            int amount = resource.First.ToObject<int>();
                            if (resDef["id"]?.ToString() == propName)
                     {
4

1 回答 1

1

没有办法使用'long'。在注释掉的代码中,溢出异常发生在 JToken 被转换并返回之后,当您获取 long 值并尝试使用静态转换将其填充到 int 中时。尝试这个:

long amount = resource.First.ToObject<long>();

于 2021-09-10T11:30:52.367 回答