【问题标题】:how to send an array as a parameter to json service in iOS如何将数组作为参数发送到iOS中的json服务
【发布时间】:2013-05-30 09:06:39
【问题描述】:
【问题讨论】:
标签:
ios
arrays
json
nsmutablearray
【解决方案1】:
首先你必须将数组转换为 JSON 字符串
NSString *requestString=[jsonParser stringWithObject:array];
将字符串转换为数据
NSData *data=[requestString dataUsingEncoding:NSUTF8StringEncoding];
将该数据设置为请求正文
[request setHTTPBody:data];
【解决方案2】:
您必须序列化数组并作为参数传递。不要忘记在服务器端反序列化
【解决方案3】:
您需要为您的数组创建一个 NSMutabelDictionary,然后对其进行 JSON 编码,然后您可以将生成的字符串发送给您的网络服务,但您可以选择。我倾向于构建一个 POST 请求并以这种方式发送它
NSMutableDictionary *jsonDict = [[NSMutableDictionary alloc] init];
NSMutableDictionary *tagData = [[NSMutableDictionary alloc] init];
for(int i = 0; i < array.count; i++)
{
NSString *keyString = [NSString stringWithFormat:@"key%i", i];
[tagData setObject:[array objectAtIndex:i] forKey:keyString];
}
[jsonDict setObject:tagData forKey:@"entries"];
NSData* data = [NSJSONSerialization dataWithJSONObject:jsonDict
options:NSJSONWritingPrettyPrinted error:&error];
NSString* aStr;
aStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
这是您需要发送的字符串 aStr