Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.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
Ios Can';无法从Json读取特定数据?_Ios_Objective C_Json_Nsarray_Nsdictionary - Fatal编程技术网

Ios Can';无法从Json读取特定数据?

Ios Can';无法从Json读取特定数据?,ios,objective-c,json,nsarray,nsdictionary,Ios,Objective C,Json,Nsarray,Nsdictionary,我有包含多个对象的json数据,我已经将这些对象保存在数组中,但当我在单个对象中读取特定数据时,应用程序会在下一行崩溃。这是我的密码: NSString *myRequestString = [NSString stringWithFormat:@"getSavedSearches=yes&userId=40"]; // Create Data from request NSData *myRequestData = [NSData dataWithBytes: [myRequestSt

我有包含多个对象的json数据,我已经将这些对象保存在数组中,但当我在单个对象中读取特定数据时,应用程序会在下一行崩溃。这是我的密码:

NSString *myRequestString = [NSString stringWithFormat:@"getSavedSearches=yes&userId=40"];
// Create Data from request
NSData *myRequestData = [NSData dataWithBytes: [myRequestString UTF8String] length: [myRequestString length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: [NSURL URLWithString: url]];
// set Request Type
[request setHTTPMethod: @"POST"];
// Set content-type
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
// Set Request Body
[request setHTTPBody: myRequestData];
// Now send a request and get Response
NSData *returnData = [NSURLConnection sendSynchronousRequest: request returningResponse: nil error: nil];
// Log Response
NSString *response = [[NSString alloc] initWithBytes:[returnData bytes] length:[returnData length] encoding:NSUTF8StringEncoding];
NSLog(@"%@",response);


NSArray *a = [NSJSONSerialization JSONObjectWithData:returnData options:NSJSONReadingMutableLeaves error:nil];
NSLog(@"Sunday: %@",[a description]);
NSDictionary *b = [a objectAtIndex:0];
NSLog(@"%@", [b valueForKey:@"SAVED_NAME"]); 
以下是回应

{"0": {
                "EVENT_ID": "19",
                "NAME": "asdasd",
                "ADDRESS1": "asdasd",
                "ADDRESS2": "asdasd",
                "START_DATE": "2015-06-04",
                "END_DATE": "2015-06-12",
                "START_TIME": "2 PM",
                "END_TIME": "10 PM",
                "SAVED": "1",
                "SAVED_NAME": "hello",
                "UPDATED_BY": "New Event",
                "UPDATED_AT": "2015-06-25 14:13:43"
                }, "1": {
                "EVENT_ID": "20",
                "NAME": "asdasdasdasdasdasdasd",
                "ADDRESS1": "asdasd",
                "ADDRESS2": "",
                "START_DATE": "2015-05-13",
                "END_DATE": "2015-05-14",
                "START_TIME": "3 PM",
                "END_TIME": "4 PM",
                "SAVED": "1",
                "SAVED_NAME": "yellow",
                "UPDATED_BY": "New Event",
                "UPDATED_AT": "2015-05-25 14:14:04"
                }, "2": {
                "EVENT_ID": "22",
                "NAME": "Osama",
                "ADDRESS1": "add",
                "ADDRESS2": "",
                "START_DATE": "2015-05-07",
                "END_DATE": "2015-05-27",
                "START_TIME": "1 AM",
                "END_TIME": "3 PM",
                "SAVED": "1",
                "SAVED_NAME": "yo yo",
                "UPDATED_BY": "New Event",
                "UPDATED_AT": "2015-05-26 11:38:14"
                }, "3": {
                "EVENT_ID": "23",
                "NAME": "zxczxc",
                "ADDRESS1": "zxczxc",
                "ADDRESS2": "zxczxc",
                "START_DATE": "2015-05-12",
                "END_DATE": "2015-05-26",
                "START_TIME": "10 AM",
                "END_TIME": "2 PM",
                "SAVED": "1",
                "SAVED_NAME": "hahaha",
                "UPDATED_BY": "New Event",
                "UPDATED_AT": "2015-05-26 11:55:24"
                }, "4": {
                "EVENT_ID": "24",
                "NAME": "wqeqweqe",
                "ADDRESS1": "qweqwe",
                "ADDRESS2": "qweqwe",
                "START_DATE": "2015-05-05",
                "END_DATE": "2015-05-07",
                "START_TIME": "2 AM",
                "END_TIME": "9 AM",
                "SAVED": "1",
                "SAVED_NAME": "jajajaja",
                "UPDATED_BY": "New Event",
                "UPDATED_AT": "2015-05-26 12:53:21"
                }, "5": {
                "EVENT_ID": "25",
                "NAME": "uiooiuuio",
                "ADDRESS1": "uiouio",
                "ADDRESS2": "uiouio",
                "START_DATE": "2015-05-05",
                "END_DATE": "2015-05-13",
                "START_TIME": "7 AM",
                "END_TIME": "3 PM",
                "SAVED": "1",
                "SAVED_NAME": "asdasdasdasdasdasd",
                "UPDATED_BY": "New Event",
                "UPDATED_AT": "2015-05-26 12:58:28"
                }, "6": {
                "EVENT_ID": "26",
                "NAME": "asdasdasd",
                "ADDRESS1": "asdasdasdas",
                "ADDRESS2": "",
                "START_DATE": "2015-05-14",
                "END_DATE": "2015-05-13",
                "START_TIME": "9 AM",
                "END_TIME": "10 PM",
                "SAVED": "1",
                "SAVED_NAME": "xcvxcvxcv",
                "UPDATED_BY": "New Event",
                "UPDATED_AT": "2015-05-26 16:48:43"
                }, "7": {
                "EVENT_ID": "37",
                "NAME": "Osama",
                "ADDRESS1": "asdasd",
                "ADDRESS2": "asdasd",
                "START_DATE": "2015-05-04",
                "END_DATE": "2015-05-12",
                "START_TIME": "2 PM",
                "END_TIME": "10 PM",
                "SAVED": "1",
                "SAVED_NAME": "Osama",
                "UPDATED_BY": "New Event",
                "UPDATED_AT": "2015-06-02 17:07:44"
                }, "8": {
                "EVENT_ID": "39",
                "NAME": "asdas",
                "ADDRESS1": "asdasd",
                "ADDRESS2": "asdasd",
                "START_DATE": "2015-06-03",
                "END_DATE": "2015-06-12",
                "START_TIME": "7 AM",
                "END_TIME": "3 PM",
                "SAVED": "1",
                "SAVED_NAME": "asdasd",
                "UPDATED_BY": "New Event",
                "UPDATED_AT": "2015-06-05 18:23:19"
                }, "9": {
                "EVENT_ID": "40",
                "NAME": "asdasd",
                "ADDRESS1": "asdasd",
                "ADDRESS2": "asdasd",
                "START_DATE": "2015-06-03",
                "END_DATE": "2015-06-17",
                "START_TIME": "8 AM",
                "END_TIME": "3 PM",
                "SAVED": "1",
                "SAVED_NAME": "asdasdasdasd",
                "UPDATED_BY": "New Event",
                "UPDATED_AT": "2015-06-05 18:26:06"
                }, "10": {
                "EVENT_ID": "41",
                "NAME": "asdasd",
                "ADDRESS1": "asdad",
                "ADDRESS2": "as",
                "START_DATE": "2015-06-09",
                "END_DATE": "2015-06-24",
                "START_TIME": "2 PM",
                "END_TIME": "11 PM",
                "SAVED": "1",
                "SAVED_NAME": "qeqweqweqweqweqweqweqwewqeqweqweqwqwee",
                "UPDATED_BY": "New Event",
                "UPDATED_AT": "2015-06-05 18:28:14"
                }, "11": {
                "EVENT_ID": "42",
                "NAME": "asdasd",
                "ADDRESS1": "asdasd",
                "ADDRESS2": "qweqwe",
                "START_DATE": "2015-06-03",
                "END_DATE": "2015-06-03",
                "START_TIME": "9 AM",
                "END_TIME": "9 PM",
                "SAVED": "1",
                "SAVED_NAME": "iopiop",
                "UPDATED_BY": "New Event",
                "UPDATED_AT": "2015-06-05 18:29:22"
                }, "12": {
                "EVENT_ID": "43",
                "NAME": "asdasd",
                "ADDRESS1": "as",
                "ADDRESS2": "adad",
                "START_DATE": "2015-06-10",
                "END_DATE": "2015-06-18",
                "START_TIME": "8 AM",
                "END_TIME": "8 PM",
                "SAVED": "1",
                "SAVED_NAME": "bvnvnvnvbnvbnvbn",
                "UPDATED_BY": "New Event",
                "UPDATED_AT": "2015-06-05 18:37:36"
                }, "13": {
                "EVENT_ID": "44",
                "NAME": "asdad",
                "ADDRESS1": "asdasd",
                "ADDRESS2": "qweqwe",
                "START_DATE": "2015-06-03",
                "END_DATE": "2015-06-17",
                "START_TIME": "9 AM",
                "END_TIME": "4 PM",
                "SAVED": "1",
                "SAVED_NAME": "asdasdasd",
                "UPDATED_BY": "New Event",
                "UPDATED_AT": "2015-06-05 18:41:27"
                }}
但我的应用程序在一行上崩溃:NSDictionary*b=[a objectAtIndex:0];
我需要读取每个对象的“保存的名称”数据并将其保存到数组中。

顶层对象是一个字典;尝试:

NSDictionary *a = [NSJSONSerialization JSONObjectWithData:returnData
                                                  options:NSJSONReadingMutableLeaves
                                                    error:nil];
NSLog(@"Sunday: %@",[a description]);
NSDictionary *b = a[@"0"];

它不需要是一本字典,因为您正在使用字符串数字作为键;但就目前而言,它是一个字典。

因为您获取的数据不是数组,所以它是一个NSDictionary,它有键“0”、“1”

所以试试看-

NSDictionary *a = [NSJSONSerialization JSONObjectWithData:returnData                                             options:NSJSONReadingMutableLeaves
                                                    error:nil];

for(int i=0;i<[a count];i++)
{
    NSDictionary *b = [a valueForKey:[NSString stringWithFormat:@"%d",i]];
    NSLog(@"%@", [b valueForKey:@"SAVED_NAME"]); 

}
NSDictionary*a=[NSJSONSerialization JSONObjectWithData:returnData选项:NSJSONReadingMutableLeaves
错误:无];

对于(int i=0;iJSON响应,主要是在字典中。因此,您需要更改根对象,这意味着将NSArray更改为NSDictionary。这将很好地工作。

从响应中可以清楚地看出,根对象是字典而不是数组。。。