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

Why is this Javascript much *slower* than its jQuery equivalent?

I have a HTML list of about 500 items and a "filter" box above it. I started by using jQuery to filter the list when I typed a letter (timing code added later): $('#filter').keyup( function() { var jqStart = (new Date).getTime(); var search = $(this).val().toLowerCase(); var $list = $('ul.ablist > li'); $list.each( function() { if ( $(this).text().toLowerCase().indexOf(search) === -1 ) $(this).hide(); else $(this).show(); } ); console.log('Time: ' + ((new Date).getTime() - jqStart)); } ); However, there was a couple of seconds delay after typing each letter (particularly the first letter). So I thought it may be slightly quicker if I used plain Javascript (I read recently that jQuery's each function is particularly slow). Here's my JS equivalent: document.getElementById('filter').addEventListener( 'keyup', function () { var jsStart = (new Date).getTime()...

Is it possible to have IF statement in an Echo statement in PHP

Thanks in advance. I did look at the other questions/answers that were similar and didn't find exactly what I was looking for. I'm trying to do this, am I on the right path? echo " <div id='tabs-".$match."'> <textarea id='".$match."' name='".$match."'>". if ($COLUMN_NAME === $match) { echo $FIELD_WITH_COLUMN_NAME; } else { } ."</textarea> <script type='text/javascript'> CKEDITOR.replace( '".$match."' ); </script> </div>"; I am getting the following error message in the browser: Parse error: syntax error, unexpected T_IF Please let me know if this is the right way to go about nesting an IF statement inside an echo. Thank you.