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

Wildcards in a hosts file

I want to setup my local development machine so that any requests for *.local are redirected to localhost . The idea is that as I develop multiple sites, I can just add vhosts to Apache called site1.local , site2.local etc, and have them all resolve to localhost , while Apache serves a different site accordingly.