Можно создать дубликат:
Send json to php using ASIFormDataRequestполучить NSMuatbleArray от iPhone до PHP, используя почту и отвечать
Я новичок в Objective-C и развитие IOS.
Я хочу отправить NSMutableArray
на PHP с iPhone, а затем вернуть его обратно и распечатать с помощью NSLog, чтобы убедиться, что этот массив успешно отправлен.
Я использовал следующий код:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSString *phpUrl = @"http://dt-works.com/eman/bookMarks.php";
NSMutableArray *arrayKey = [[NSMutableArray alloc] initWithObjects:@"one", @"two", @"three", nil];
NSMutableArray *arrayValue1 = [[NSMutableArray alloc] initWithObjects:@"1", @"2", @"3", nil];
NSMutableArray *arrayValue2 = [[NSMutableArray alloc] initWithObjects:@"11", @"22", @"33", nil];
NSDictionary *theReqDictionary1 = [NSDictionary dictionaryWithObjects:arrayValue1 forKeys:arrayKey];
NSDictionary *theReqDictionary2 = [NSDictionary dictionaryWithObjects:arrayValue2 forKeys:arrayKey];
NSMutableArray *myArray = [NSMutableArray arrayWithObjects:theReqDictionary1,theReqDictionary2, nil];
NSString *jsonString = [myArray JSONRepresentation];
NSLog(@"%@", jsonString);
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:phpUrl]];
NSString *post = [[NSString alloc] initWithFormat:@"jsonString=%@&submit=", jsonString];
//NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:NO];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:[post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO]];
SBJsonParser *parser = [[SBJsonParser alloc] init];
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
NSArray *statuses = [parser objectWithString:json_string error:nil];
int arraySize = [statuses count];
NSMutableArray *number = [[NSMutableArray alloc] init];
for (NSDictionary *status in statuses)
{
NSString *onee = [status objectForKey:@"one"];
NSString *twoo = [status objectForKey:@"two"];
NSString *threee = [status objectForKey:@"three"];
[number addObject:status];
NSLog(@"------------------ from browser-----------------------------------");
NSLog(@"myOne %@ - myTwo: %@ - myThree: %@ ",onee ,twoo, threee);
}
NSLog(@"size of array is: %d", arraySize);
NSLog(@"size of them is: %d", [number count]);
}
В PHP я написал следующий код:
<?php
header('Content-type:text/html;charset=utf-8');
if (isset($_POST['submit'])) {
$jsonString = $_POST['jsonString'];
print_r($jsonString);
}
?>
выход является:
[{"one":"1","two":"2","three":"3"},{"one":"11","two":"22","three":"33"}]
size of array is: 0
size of them is: 0
и размер массива должен быть 2, что случилось в моем коде ???
Я думаю, что json_decode преобразует json в массив, я не хочу его декодировать, я хочу, чтобы он был [{«один»: «1», «два»: «2», «три»: «3 "}, {" one ":" 11 "," two ":" 22 "," three ":" 33 "}], чтобы проанализировать его снова и вывести его размер –
использовать json_decode для ввода результата в массив, а затем использовать «count» php function знать размер –
как использовать функцию count php в коде iPhone ??? потому что я хочу получить размер в nslog –