Reputation: 17902
I'm using JSON POST approach, my code is
[_urlReq setValue:@"application/x-www-form-urlencoded; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[_urlReq setHTTPMethod:@"POST"];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long) [postData length]];
[_urlReq setValue:postLength forHTTPHeaderField:@"Content-Length"];
[_urlReq setHTTPBody:postData];
_dataTask = [_urlSession dataTaskWithRequest:_urlReq completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
if (!(data == nil)) {
I'm converting response data in to string formate
NSString* myString = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];// NSUTF8StringEncoding
NSLog(@"myString :%@", myString);
OutPut:
myString :{"Response":{"status":"SUCCESS","error_code":"0","message":"message","Array":[{"name" => "VVV","name" => "CHE","ac" => "5a8805a","email" =>"vvv","line1" =>"","line2" =>"","no" =>"","street" =>"","pin_code" =>"","state_id" =>"0","district_name" =>"0"}]}}
//Convert string into Dic
NSData *data1 = [myString dataUsingEncoding: NSUTF8StringEncoding];
id json = [NSJSONSerialization JSONObjectWithData:data1 options:0 error:nil];
NSLog(@"json : %@", json);
NSLog(@"Response : %@",[json objectForKey:@"Response"]);
//Second approach to convert string to dic
NSError *err = nil;
NSArray *array = [NSJSONSerialization JSONObjectWithData:[myString dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableContainers error:&err];
NSLog(@"array :%@", array);
NSDictionary *dictionary = [array objectAtIndex:0];
NSLog(@"dictionary : %@", dictionary);
NSString *test = [dictionary objectForKey:@"Response"];
NSLog(@"Test is %@",test);
}
I don't know what is the problem here....
Upvotes: 0
Views: 193
Reputation: 234
Your json string is not correct. Please check my demo json string.
try this
let myString :String = "{\"Response\":{\"status\":\"SUCCESS\",\"error_code\":\"0\",\"message\":\"message\",\"Array\":[{\"name\" : \"VVV\",\"name\" : \"CHE\",\"ac\" : \"5a8805a\",\"email\" :\"vvv\",\"line1\" :\"\",\"line2\" :\"\",\"no\" :\"\",\"street\" :\"\",\"pin_code\" :\"\",\"state_id\" :\"0\",\"district_name\" :\"0\"}]}}"
if let data = myString.data(using: .utf8){
do{
let json = try JSONSerialization.jsonObject(with: data, options: .init(rawValue: 0));
print(json)
}catch{
}
}
Output
{
Response = {
Array = (
{
ac = 5a8805a;
"district_name" = 0;
email = vvv;
line1 = "";
line2 = "";
name = VVV;
no = "";
"pin_code" = "";
"state_id" = 0;
street = "";
}
);
"error_code" = 0;
message = message;
status = SUCCESS;
};
}
Upvotes: -1
Reputation: 4075
You JSON format is Starting with Dictionary.
Instead of,
NSArray *array = [NSJSONSerialization JSONObjectWithData:[myString dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableContainers error:&err];
NSLog(@"array :%@", array);
Replace this and Try
NSDictionary *jSonDict = [NSJSONSerialization JSONObjectWithData:[myString dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableContainers error:&err];
Second Try:
NSDictionary *jSonDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&err];
For more info, how to validate JSON, use this link enter link description here
Your JSON:
Upvotes: 2
Reputation: 2777
Replace JSON response string with this
{"Response":{"status":"SUCCESS","error_code":"0","message":"message","Array":[{"name" : "VVV","name" : "CHE","ac" : "5a8805a","email" : "vvv","line1" : "","line2" : "","no" : "","street" : "","pin_code" : "","state_id" : "0","district_name" : "0"}]}}
Upvotes: 0