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的主要内容,如果未能解决你的问题,请参考以下文章
NSData init?(contentsOf url: URL) 从 Swift 2 迁移到 Swift 3
如何将 NSString 转换为 NSData?并且数据与字符串内容相同