NSJSONSerialization 不处理负整数

NSJSONSerialization not handling negative integers

我正在尝试将 JSON 文件解析为 NSArray,它对正数都适用。然而,JSON 文件中的所有负整数都会产生像“[11] __NSCFNumber * (long)72057594037927933” 这样的高数。我怎样才能让它工作?

这是我的 JSON 文件:

[0,1,2,3,4,5,6,7,8,9,10,-2,-3,-4,-5,-6,-7,-8,-9,-10,-11]

这里是代码:

 NSError* error;
 NSData* data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"https://some/json/file.json"]];
 NSMutableArray* array = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];

Xcode 并不总是将好的值打印到 Xcode 的调试区域(上下文的实时值出现的地方)。

我将你的代码放入我自己的项目中,当我逐行执行时,我确实看到了“eachNumber __NSCFNumber * (long)72057594037927934 {0xbfffffffffffffe3} 位,但如果我尝试将数组的值打印到控制台,你您会看到正确的“-2”结果。

自己试试吧。我在你的后面添加了这些行:

NSMutableArray* array = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];

NSLog(@"array is %@", array);

for(id eachNumber in array)
{
    NSLog(@"eachNumber is %@", eachNumber);
}