Skip to main content

iOS NSJSON Returning Null



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.


Comments

  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.

    ReplyDelete

Post a Comment

Popular posts from this blog

Slow Android emulator

I have a 2.67 GHz Celeron processor, 1.21 GB of RAM on a x86 Windows XP Professional machine. My understanding is that the Android emulator should start fairly quickly on such a machine, but for me it does not. I have followed all instructions in setting up the IDE, SDKs, JDKs and such and have had some success in staring the emulator quickly but is very particulary. How can I, if possible, fix this problem?