2012-02-01 126 views
0

我一直無法找到如何將JSON數組轉換爲NSArray。如何將JSON數組轉換爲NSArray

我有一個創建被轉換成JSON然後將其發送並存儲到,看起來一個NSString數組中的PHP腳本,如:

[1,2,3,4] 

我的問題是,我需要做的是爲一個NSArray的整數。如何做到這一點?

謝謝!

+0

請問您的應用程序或JSON字符串? – JoePasq 2012-02-01 23:18:07

+0

有沒有這樣的事情作爲一個NSArray的整數。 NSArrays,NSDictionarys和NSSets可能只包含ObjC風格的對象,所以使用任何JSON-Frameworks(我更喜歡JSONKit)將會是NSNumbers的NSArray。 – Ahti 2012-02-02 01:03:24

回答

4

如果我想很快打破成JSON響應陣列我會這樣做:

NSString * jstring = @"[1,2,3,4]"; //your json string 

jstring = [jstring stringByReplacingOccurrencesOfString:@"[" withString:@""]; 
jstring = [jstring stringByReplacingOccurrencesOfString:@"]" withString:@""]; 

NSArray * intArray = [string componentsSeparatedByString:@","]; 



//you could create your int from the array like this 
int x = [[intArray objectAtIndex:0]intValue]; 
+1

yea ...不,他不會有int數組,他會有一個NSStrings數組。 – Ahti 2012-02-02 01:01:45

+0

對不起,你將不得不把字符串作爲intValue – Louie 2012-02-02 16:38:03

+0

謝謝!這很好。但我怎麼能把字符串作爲intValues? – user1072264 2012-02-02 18:04:04

0

導入SBJson在您的項目(拖放)

#import "SBJson.h" 

然後,你收到來自PHP文件

NSArray *array = [responseString JSONValue]; 
+0

這適用於解碼php中的JSON,但是當我將它發送到NSString時,所有出現的都是 Array 另外,我想我將不得不在iOS應用程序中編輯我的.m文件,而不是php。 – user1072264 2012-02-01 23:06:23

+0

aha。我的錯。 Objective-c中有一個很好的json庫:https://github.com/stig/json-framework/ – 2012-02-01 23:09:38

6

你應該看看的文檔類。

您可以將它從遠程調用(它是JSON格式的字符串)接收的NSData傳遞給它,並接收它包含的數組或字典。

NSObject *o =[NSJSONSerialization JSONObjectWithData:data 
              options:NSJSONReadingMutableContainers 
               error:&error]; 

// other useful "options": 
// 0 
// NSJSONReadingMutableLeaves 
// NSJSONReadingMutableLeaves | NSJSONReadingMutableContainers 

,那麼你應該檢查o是你期待的理智目的類型的

+1

這應該是人們在iOS中使用JSON的方式,因爲更多人在其設備上安裝iOS5。 – colincameron 2012-02-02 10:51:49