这是json响应我该如何解析它?
[ { "id":"35", "name":"Jalsa" } ]
[ { "id":"32", "name":"Nandhini" } ]
苹果有一个类叫做
NSJSON序列化
您可以使用以下方法来解析您的 json 数据
+ (id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error
有关更多信息,请参阅苹果文档:http: //developer.apple.com/library/ios/#documentation/Foundation/Reference/NSJSONSerialization_Class/Reference/Reference.html
编辑:
我不知道您如何提出请求,例如。NSURL连接
假设你已经在你的 _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
当表达式在“[”“]”之间时我们使用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);
}
如果您需要支持 iOS 4.x,您可以使用 JSONKit,因为 NSJSONSerialization 仅在 iOS 5.x 之后可用。
JSONKit 也有很棒的性能。检查他们在 GitHub 上的项目页面上的比较。