我正在使用基于iPhone JSON Web Service的app.I需要将输入参数作为数组传递给JSON Web服务,我该怎么做?
Array包含12个元素。 这里提供样品服务...... 此服务的输入参数: dev_id = 1; dev_name = josh和数组项(projectslist,companyidentifier)
http://www.jyoshna.com/api/developer.php?dev_id=1&dev_name=josh&(Here我需要传递数组元素)
可以帮助我们如何将数组作为输入参数传递给json服务吗?
答案 0 :(得分:1)
首先,您必须将数组转换为JSON字符串
NSString *requestString=[jsonParser stringWithObject:array];
将字符串转换为数据
NSData *data=[requestString dataUsingEncoding:NSUTF8StringEncoding];
将该数据设置为请求正文
[request setHTTPBody:data];
答案 1 :(得分:0)
您必须序列化数组并作为参数传递。别忘了在服务器端反序列化
答案 2 :(得分:0)
您需要创建一个数组的NSMutabelDictionary,然后JSON对其进行编码,然后您可以将结果字符串发送到您选择的Web服务中。我倾向于构建一个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];
您需要发送的是sgtring aStr