NSData 的内容到 NSArray/NSDictionary

Posted

技术标签:

【中文标题】NSData 的内容到 NSArray/NSDictionary【英文标题】:content of NSData into NSArray/NSDictionary 【发布时间】:2013-02-02 17:57:43 【问题描述】:

我有这个:

- (void)viewDidLoad

    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    NSURL *url = [NSURL URLWithString:@"http://www.xyz.com/ios/responseScript.php"];

    NSError *error = nil;

    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:NULL error:&error];

    NSString *dataString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];



当我打印 dataString 时,它准确地显示了我所期望的,即

["Bannana","Apple","SomeCheese"]

我想把它处理成 NSMutableArray。我该怎么做?

谢谢,

【问题讨论】:

在这个阶段,您希望将 NSString 转换为 NSMutableArray。你试过 componentsSeparatedbyString 或 Regex 吗? 不,我没有这样做,因为这听起来太复杂了。有更好的主意吗? 嗯.. 删除第一个和最后一个字符(“[”和“]”)然后使用 componentsSeparatedbyString 将字符串拆分为一个数组过于复杂? @edzio27 提供的代码有效。简单干净。不过谢谢,以后可能会使用它。 【参考方案1】:

试试这个:

NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:returnData options:kNilOptions error:&error];
NSMutableArray *array = [[NSMutableArray alloc] init];
for(NSString *key in dictionary) 
    [array addObject:[dictionary objectForKey:key]];

【讨论】:

以上是关于NSData 的内容到 NSArray/NSDictionary的主要内容,如果未能解决你的问题,请参考以下文章

NSString 到 NSData 编码失败

NSData init?(contentsOf url: URL) 从 Swift 2 迁移到 Swift 3

如何将 NSString 转换为 NSData?并且数据与字符串内容相同

RestKit 0.20 使用 nsdata 发布数组 Json

objective-c如何将文件中内容转化为NSData

应用程序在 Nsdata 持久存储调用上崩溃