Выборка данных с использованием синтаксического анализа JSON с помощью метода post в iOS7 с использованием NSJSONSerialization

#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");
    }