ios - Getting a Value from empty Key in NSArray / NSDictionary -


i need take out value json. json value goes this:

[{"status":1,"data":[{"":558202}]}] 

i have tried several method posted in stackoverflow. still not getting desire reuslt.

the nearest result close getting

( 558202 ) 

but need 558202. have tried

  nsarray *jsonobject = [nsjsonserialization jsonobjectwithdata:[resultstr datausingencoding:nsutf8stringencoding]options:0 error:null];   nsdictionary *tabledata = [jsonobject valueforkey:@"data"];   nsstring *tempdata=[tabledata objectforkey:@""]; 

while above method error:

-[__nsarrayi objectforkey:]: unrecognized

the object key data not dictionary, it's array containing 1 dictionary.

the error message does, in fact, tell that.

--[__nsarrayi objectforkey:] : unrecognized      ^^^^^^^^ subclass of nsarray 

you need

nsarray *jsonobject = [nsjsonserialization jsonobjectwithdata:[resultstr datausingencoding:nsutf8stringencoding]options:0 error:null]; nsarray *tabledata = [[jsonobject objectatindex: 0] objectforkey:@"data"]; nsstring *tempdata=[[tabledata objectatindex: 0] objectforkey:@""]; 

nb reason valueforkey: worked on array because, arrays, applies valueforkey: every element in array , returns array results in.

edit

the above code can written

nsstring *tempdata = jsonobject[0][@"data"][0][@""]; 

using modern syntax. rmaddy says below, don't chain things because element in json collection can json compatible type, in real life have check kind of object got e.g.

id jsonobject = [nsjsonserialization jsonobjectwithdata:[resultstr datausingencoding:nsutf8stringencoding]options:0 error:null];  if ([jsonobject iskindofclass: [nsarray class]]) {     id firstelement = jsonobject[0];           if ([firstelement iskindofclass: [nsdictionary class]])     {         id data = firstelement[@"data"];      // etc     } } else {     // errror } 

Comments

Popular posts from this blog

powershell Start-Process exit code -1073741502 when used with Credential from a windows service environment -

twig - Using Twigbridge in a Laravel 5.1 Package -

c# - LINQ join Entities from HashSet's, Join vs Dictionary vs HashSet performance -