这是json响应我该如何解析呢?
[ { “ID”: “35”, “名”: “Jalsa” } ]
[ { “ID”: “32”, “名”: “Nandhini” } ]
答案 0 :(得分:3)
苹果有一类叫做
NSJSONSerialization
您可以使用以下方法来解析您的json数据
+ (id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error
有关更多信息,请参阅apple doc:http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSJSONSerialization_Class/Reference/Reference.html
编辑:
我不知道你如何提出请求,例如。 NSURLConnection的
假设您已在
中填写了_recievedData- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
方法
你可以像这样得到你的阵列
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSArray *recivedArray = [NSJSONSerialization JSONObjectWithData:_receivedData options:0 error:nil];
}
如果您需要有关如何接收数据的更多帮助,可以在此处找到示例https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/URLLoadingSystem/Tasks/UsingNSURLConnection.html
答案 1 :(得分:1)
当表达式在“[”“]”之间时,我们使用 NSArray 当表达式位于“{”“}”
内时,我们使用 NSDictionary在我们的例子中,json是一个包含2个词典的数组。每个字典包含2个键值对。
NSError *e = nil;
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData: data options:
NSJSONReadingMutableContainers error: &e];
if (e!=nil) {
// Handle error
return;
}
for (NSDictionary *dict in jsonArray)
{
NSString *theID = [dict objectForKey:@"id"];
NSLog(@"ID:%@" , theID);
NSString *name = [dict objectForKey:@"name"];
NSLog(@"Name: %@" , name);
}
答案 2 :(得分:0)
如果您需要支持iOS 4.x,可以使用JSONKit,因为NSJSONSerialization仅在iOS 5.x之后可用。
JSONKit也有很棒的表现。检查GitHub项目页面上的比较。