#json #parsing #post #ios7
#json #синтаксический анализ #Публикация #ios7
Вопрос:
Я новичок в разработке iOS. Нужна помощь для анализа этих данных с использованием NSJSONSerialization. Данные поступают с помощью метода post. Данные выглядят следующим образом [ { «edition_id»: «1», «error»: false, «long_name»: «Rajkot», «message»: «RESULT_OK», «short_name»: «RJT» } ]
и код моего файла выглядит следующим образом
NSURL *theURL = [NSURL URLWithString:@"MYURL"];
NSMutableURLRequest *theRequest = [[NSMutableURLRequest alloc] init];
[theRequest setURL:theURL];
[theRequest setHTTPMethod:@"POST"];
NSData *allCoursesData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:theRequest]];
NSError *error;
NSMutableDictionary *allCourses = [NSJSONSerialization JSONObjectWithData:allCoursesData options:kNilOptions error:amp;error];
Ответ №1:
NSString * uid = @"2"; // variable value
NSString *post = [NSString stringWithFormat:@"uid=%@",uid]; // post variable
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:@"http://localhost/my/json_post/index.php"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded;charset=UTF-8" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
NSURLResponse *response;
NSData *POSTReply = [NSURLConnection sendSynchronousRequest:request returningResponse:amp;response error:nil];
/* NSString *theReply = [[NSString alloc] initWithBytes:[POSTReply bytes] length:[POSTReply length] encoding: NSASCIIStringEncoding];
NSLog(@"json Reply : %@", theReply);
*/
NSArray *arr = [NSJSONSerialization JSONObjectWithData:POSTReply options:0 error:nil];
NSLog(@"%@",arr);
NSLog(@"%@",[arr valueForKey:@"id"]); //this is table column name
NSLog(@"%@",[arr valueForKey:@"name"]);
NSLog(@"%@",[arr valueForKey:@"surname"]);
Ответ №2:
Выборка данных с использованием синтаксического анализа JSON с помощью метода post
NSHTTPURLResponse *response = nil;
NSError *error=nil;
NSString *post = [NSString stringWithFormat:@"Key=%@",@"value"];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%lu",(unsigned long)[postData length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:@"Your URL"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
NSData *conn1 = [NSURLConnection sendSynchronousRequest:request returningResponse:amp;response error:amp;error];
NSLog(@"%@",conn1);
NSString *responseString = [[NSString alloc] initWithData:conn1 encoding:NSUTF8StringEncoding];
NSLog(@"here %@",responseString);
if(conn) {
NSLog(@"Connection Successful");
} else {
NSLog(@"Connection could not be made");
}