2012-02-01 152 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