2015-11-16 2 views
0

J'essaye d'analyser un fichier JSON dans un NSArray et tout fonctionne bien pour les nombres positifs. Cependant tous les entiers négatifs dans ce fichier JSON produisent des nombres élevés comme "[11] __NSCFNumber * (long) 72057594037927933". Comment puis-je obtenir cela pour travailler?NSJSONSerialization ne gère pas les entiers négatifs

Voici mon fichier JSON:

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

et voici le code:

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

est qui ont vraiment votre fichier JSON fichiers JSON généralement différents attributs et les clés et non seulement un objectif-C droite? –

+0

@MichaelDautermann c'est tout ce qu'il y a, oui – joshflosh

Répondre

2

Xcode n'imprime pas toujours de belles valeurs dans la zone de débogage de Xcode (où les valeurs en direct pour la le contexte apparaît).

J'ai laissé tomber votre code dans mon propre projet et quand je passe à travers chaque ligne, je vois les "eachNumber __NSCFNumber * (long)72057594037927934 {0xbfffffffffffffe3} bits, mais si j'essaie d'imprimer les valeurs de la matrice dans la console, vous verrez le bon" .. -2 "résultat

Essayez vous-même j'ajouté dans ces lignes juste après le vôtre:

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

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

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

Vous êtes cor rect, merci! =) – joshflosh