-3

这是json响应我该如何解析它?

[ { "id":"35", "name":"Jalsa" } ]

[ { "id":"32", "name":"Nand​​hini" } ]

4

3 回答 3

3

苹果有一个类叫做

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

于 2012-08-08T08:45:42.590 回答
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);
 }
于 2012-08-08T08:52:14.907 回答
0

如果您需要支持 iOS 4.x,您可以使用 JSONKit,因为 NSJSONSerialization 仅在 iOS 5.x 之后可用。

JSONKit 也有很棒的性能。检查他们在 GitHub 上的项目页面上的比较。

于 2012-08-08T08:47:46.840 回答