I am parsing a JSON
in my code. But I am getting some unexpected issues while retrieving data of parsed JSON
. So let me explain my problem.
I have to parse following JSON
data using xcode. This is what data to be parsed looks like while I hit same URL in browser:
{
"RESPONSE":[
{"id":"20",
"username":"john",
"email":"abc@gmail.com",
"phone":"1234567890",
"location":"31.000,71.000"}],
"STATUS":"OK",
"MESSAGE":"Here will be message"
}
My code to reach up to this JSON
data is as follow:
NSData *data = [NSData dataWithContentsOfURL:finalurl];
NSError *error;
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
If I print object json
using NSLog
, i.e. NSLog(@"json: %@", [json description]);
it looks like:
json: {
MESSAGE = "Here will be message";
RESPONSE =(
{
email = "abc@gmail.com";
id = 20;
location = "31.000,71.000";
phone = 1234567890;
username = john;
}
);
STATUS = OK;
}
So, here I observed two things:
Sequence of keys (or nodes) (
MESSAGE
,RESPONSE
andSTATUS
) is changed as compared to web response above.The
RESPONSE
is get enclosed in'(' & ')'
braces.
Now if I separate out values for keys MESSAGE
& STATUS
and NsLog
them, then they get printed as proper string.
Like msgStr:Here will be message
& Status:OK
But if I separate out value for RESPONSE
as a dictionary and again separating sub values of that dictionary like email
and username
, then I can't getting those as string.
Here is the code so far I wrote:
NSMutableDictionary *response = [json valueForKey:@"RESPONSE"];
NSString *username = [response valueForKey:@"username"];
NSString *emailId = [response valueForKey:@"email"];
If I print username
and emailId
, then they are not getting printed as normal string, instead it outputs as:
username:(
john
)
email:(
abc@gmail.com
)
So my question is why it's not getting as a normal string? If I tried to use this variables further then they show value enclosed within '(' & ')'
braces. Is this happening because of NSJSONSerialization
?