如何以正确的方式解析来自 GET 响应的数据?
Posted
技术标签:
【中文标题】如何以正确的方式解析来自 GET 响应的数据?【英文标题】:How can I parse data from GET response in proper way? 【发布时间】:2011-12-12 20:26:33 【问题描述】:我试图解析来自网络服务器的响应数据。我正在使用 Xcode 4.2。
NSLog(@"Establishing connection...");
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; [request setURL:[NSURL URLWithString:@"example.com/test.php"]]; [request setHTTPMethod:@"GET"];
accept = @"Kokokoko";
NSLog(@"Adding value for HTTP Header");
[request addValue:accept forHTTPHeaderField: @"Accept"];
NSLog(@"Sending request...");
//send request & get response
returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSLog(@"Request sent");
然后我想使用 returnData 来解析 JSON 响应。应该是
["Test", "42", "OK"]
所以我尝试使用 NSDictionary 和 JSONValue 等技巧但没有成功。也许这个问题有一个简单的解决方案?
【问题讨论】:
【参考方案1】:如果您希望您的服务器返回这样的字符串:
["Test", "42", "OK"]
那么它的 JSONValue 就是 NSArray(不是 NSDictionary)。试试这个:
NSString* responseString = [[[NSString alloc] initWithData:returnData encoding: NSUTF8StringEncoding] autorelease];
NSLog(@"Response String: %@", responseString);
// Supposing that you are using SBJson, the parsing part may look like this:
//
NSArray* responseArray = [returnString JSONValue];
NSLog(@"Response Array: %@", responseArray);
【讨论】:
以上是关于如何以正确的方式解析来自 GET 响应的数据?的主要内容,如果未能解决你的问题,请参考以下文章
如何在全球范围内以最佳方式处理来自服务器的 401/403 响应
如何在一个 GET 请求中解析来自 Coinbase API 的所有股票代码