iOS中的NSArray问题

时间:2015-04-01 06:17:08

标签: php ios nsarray

我正在向php服务器发送数组对象。我不知道如何将数据格式数据发送到php服务器

当我尝试发送数组格式时,我的数组格式看起来像。如何删除brases和双引号

"(

vdsvvdsvdsv

)"

请让我知道如何正确地做到这一点。

3 个答案:

答案 0 :(得分:0)

您需要先将NSArray转换为NSData,然后再转换为JSON字符串,然后再将其发送到服务器。

希望此链接有所帮助:https://stackoverflow.com/a/10323594/3336675

修改

NSMutableString *jsonString = [[NSMutableString alloc]initWithString:@"{\"userId\":\""];
[jsonString appendFormat:@"%@\",\"projectSponsor\":\"%@\",\"projectId\":\"%@\"}", userId, addSponsorEmailStringInModel, projectId];

然后

NSString *urlString = [NSString stringWithFormat:@"%@",@"http://url.com/..."];

NSMutableData *responseData;

NSString* escapedUrlString =[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSURL* serverUrl = [NSURL URLWithString:escapedUrlString];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:serverUrl];

[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; //set value according to your requirement

然后

[request setHTTPBody:[NSString stringWithString:jsonString] dataUsingEncoding:NSUTF8StringEncoding];
[request setHTTPMethod:@"POST"];

然后如果你想要返回值,请使用此

NSURLResponse *res = nil;
NSError *err = nil;

NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&res error:&err];//or asynchronous, as you wish

data现在保存返回的JSON对象

答案 1 :(得分:0)

这一行

[request setHTTPBody:[[NSString stringWithFormat:@"userid=%@&projectSponsor=%@&projectid=%@", userId,addSponsorEmailStringInModel,projectId] dataUsingEncoding:NSUTF8StringEncoding]];

实际应该是2部分

NSString *emails = [addSponsorEmailStringInModel componentsJoinedByString:@","];
[request setHTTPBody:[[NSString stringWithFormat:@"userid=%@&projectSponsor=%@&projectid=%@", userId,emails,projectId] dataUsingEncoding:NSUTF8StringEncoding]];

这样您就可以将数组显式转换为服务器期望的字符串格式

答案 2 :(得分:0)

这取决于为处理输入流而编写的服务器代码。

基本上,服务器传输需要XML或JSON数据。

对于JSON选择一个简单的解析器,如SBJSONParser,并将数组传递给它。 (使用sbjson,我们甚至可以转换)

对于XML,您需要使用NSDATA将数据转换为字节,然后将其传递给标记。