Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我们如何通过JSON解析在iOS中检索数据?_Ios_Iphone_Json - Fatal编程技术网

我们如何通过JSON解析在iOS中检索数据?

我们如何通过JSON解析在iOS中检索数据?,ios,iphone,json,Ios,Iphone,Json,我在应用程序中调用此方法 [flickrRequest callAPIMethodWithPOST:@"flickr.photosets.create" arguments:[NSDictionary dictionaryWithObjectsAndKeys:FLICKR_AUTH_TOKEN,@"api_key",albumNAME,@"title",@"13978764555",@"primary_photo_id",@"Uploaded from my iPhone/iPod Touch"

我在应用程序中调用此方法

[flickrRequest callAPIMethodWithPOST:@"flickr.photosets.create" arguments:[NSDictionary dictionaryWithObjectsAndKeys:FLICKR_AUTH_TOKEN,@"api_key",albumNAME,@"title",@"13978764555",@"primary_photo_id",@"Uploaded from my iPhone/iPod Touch", @"description", nil]];
JSON响应:

{ "photoset": { "id": "72157644227295321", "url": "https:\/\/www.flickr.com\/photos\/122586274@N04\/sets\/72157644227295321\/" }, "stat": "ok" }

我在我的日志猫上得到了这个响应,现在的问题是我想在我的应用程序中检索这个“id”,但我无法这样做。请帮助我如何检索此id?

从服务器返回数据后,您可以将其转换为NSDictionary

NSError *error;
NSDictionary *response = [NSJSONSerialization JSONObjectWithData:dataFromServer options:NSJSONReadingMutableContainers error:&error];`
现在由于id位于第二层,所以您可以

NSString *id = [[response objectForKey:@"photoset"] objectForKey:@"id"];

确保在中执行nsjsonserialization
-(无效)连接IDFinishLoading:(NSURLConnection*)连接
方法

您需要在@interface中创建一个实例变量,如下所示:

@interface TheClass: NSObject<NSURLConnectionDelegate>
{
    NSMutableData *_responseData;
}

在执行ConnectiondFinishLoading方法之前,尚未接收所有数据

为什么无法检索
id
?您是如何尝试解析数据以将其转换为可以使用的表单的?您看过
NSJSONSerialization
吗?首先使用
NSJSONSerialization
在任何字典中获取响应,然后尝试此操作。
[[jsonResponse ObjectForKey:@“photoset”]valueForKey:@“id”]当我使用NSDictionary时,我的应用程序崩溃并出现错误:***由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[\uu NSDictionaryI bytes]:当我使用此代码时,发送到实例0x10AC43E0的未识别选择器NSData data=[NSData DATABATWITHDATA:(NSData)响应医学];n错误*错误;NSDictionary*jsonResponse=[NSJSONSerialization JSONObjectWithData:数据选项:针织错误:&错误];我的应用程序崩溃,我收到此错误:**由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[\uu NSDictionaryI bytes]:未识别的选择器发送到实例0x11240ab80”我做错了什么请帮助我解决此问题?看起来您向第二行传递了无效数据。确保从第1行返回的数据有效。如果(!error){2nd line}或者{[error localizedDescription];},您可以尝试
if(!error){2nd line}
,这可能会让您更好地了解第一行没有成功运行。
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    // Append the new data to the instance variable you declared
    [_responseData appendData:data];
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
        NSError *error;
        NSDictionary *response = [NSJSONSerialization JSONObjectWithData:_responseData    options:NSJSONReadingMutableContainers error:&error];

}