iOS NSJSON Returning Null

☆樱花仙子☆ 提交于 2019-12-12 05:02:48

问题


I have the following code

 hostStr = [hostStr stringByAppendingString:post];
NSData *dataURL =  [NSData dataWithContentsOfURL: [ NSURL URLWithString: hostStr ]];    
NSString *serverOutput = [[NSString alloc] initWithData:dataURL encoding: NSASCIIStringEncoding];    

NSError *error = nil;
NSDictionary *result = [NSJSONSerialization 
                        JSONObjectWithData:dataURL
                        options:kNilOptions 
                        error:&error];

NSArray *files = [result objectForKey:@"GV_Return"];

NSLog(@"Files: %@", files);

// For Each Key we seperate the data and add it to an object to be used.
for (NSDictionary *file in files)
{           
NSString *userNumber = [result objectForKey:@"UserNumber"];
NSLog(@"output: %@", userNumber);
}

The problem I'm having is that NSLog(@"Files: %@", files); returns what I expect

Files: (
    {
    UserNumber = 1;
}
)

However NSLog(@"output: %@", userNumber); Returns NULL

I need help figuring out why NSString *userNumber = [result objectForKey:@"UserNumber"]; does not seem to be returning "1" as it should.


回答1:


Change your code to:

for (NSDictionary *file in files)
{           
NSString *userNumber = [file objectForKey:@"UserNumber"];
NSLog(@"output: %@", userNumber);
}

i.e. file objectForKey..., not result objectForKey.... You're iterating through the files array with each entry in it being identified as file for the purposes of the code within the for loop.



来源:https://stackoverflow.com/questions/9424040/ios-nsjson-returning-null

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!