2011-05-09 42 views
3

我與JSON庫工作,看到這樣的情況:SBJsonParser在iPhone應用程序

轉換JSON字符串的NSDictionary

方案1:

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

我看到的結果如下:

詞典:{ Name =「Foo」; Points = 5; }

所以這是正確的。

方案2:

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

我看到的,隨後的結果:

詞典:{ 名稱= 「foo」 的; Points =「0.5」; } ???

方案3:

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

我看到的,隨後的結果:

詞典:{ 名稱= 「foo」 的; Points =「-1」; } ???

爲什麼JSON庫會將負數或小於1的數字轉換爲字符串? 你知道如何防止這種情況發生嗎?

回答

1

我沒有「爲什麼」,但它可能不是問題,因爲您可以在檢索時調用intValuefloatValue

NSLog(@"Points = %.2f", [[dictionary valueForKey:@"Points"] floatValue]); 
+0

我第二個這......我也是這麼做的。 – Sid 2011-05-09 23:58:19