SBJsonParser в приложении для iPhone - PullRequest
3 голосов
/ 10 мая 2011

Я работаю с библиотекой JSON и вижу следующую ситуацию:

Преобразование строки JSON в NSDictionary

Сценарий 1:

NSString *jsonString = @"{\"Name\":\"Foo\", Points:5}";
NSDictionary *dictionary = (NSDictionary*)[jsonParser objectWithString:jsonString];
NSLog(@"Dictionary: %@",dictionary);

Я вижу результат следующим образом:

Словарь: { Name = "Foo"; Очки = 5; }

Так что это правильно.

Сценарий 2:

NSString *jsonString = @"{\"Name\":\"Foo\", Points:0.5}";
NSDictionary *dictionary = (NSDictionary*)[jsonParser objectWithString:jsonString];
NSLog(@"Dictionary: %@",dictionary);

Я вижу результат следующим образом:

Словарь: { Name = "Foo"; Очки = «0,5»; } ???

Сценарий 3:

NSString *jsonString = @"{\"Name\":\"Foo\", Points:-1}";
NSDictionary *dictionary = (NSDictionary*)[jsonParser objectWithString:jsonString];
NSLog(@"Dictionary: %@",dictionary);

Я вижу результат следующим образом:

Словарь: { Name = "Foo"; Очки = "-1"; } ???

Почему библиотека JSON преобразует отрицательные числа или число меньше 1 в строку? Вы знаете, как этого избежать?

1 Ответ

1 голос
/ 10 мая 2011

У меня нет «почему», но это может не быть проблемой для вас, так как вы можете вызвать intValue или floatValue при получении.

NSLog(@"Points = %.2f", [[dictionary valueForKey:@"Points"] floatValue]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...