0

我正在使用基于 iPhone JSON Web 服务的应用程序。我需要将输入参数作为数组传递给 JSON Web 服务,我该怎么做?

数组包含 12 个元素。这里提供示例服务...此服务的输入参数:dev_id = 1; dev_name= josh 和数组项 (projectslist,companyidentifier)

http://www.jyoshna.com/api/developer.php?dev_id=1&dev_name=josh&(这里我需要传递数组元素)

可以帮助我们如何将数组作为输入参数传递给 json 服务吗?

4

3 回答 3

1

首先,您必须将数组转换为 JSON 字符串

NSString *requestString=[jsonParser stringWithObject:array];

将字符串转换为数据

NSData *data=[requestString dataUsingEncoding:NSUTF8StringEncoding];

将该数据设置为请求正文

[request setHTTPBody:data];
于 2013-05-30T09:18:23.590 回答
0

您必须序列化数组并作为参数传递。不要忘记在服务器端反序列化

于 2013-05-30T09:18:43.180 回答
0

您需要为您的数组创建一个 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];

这是您需要发送的 sgstring aStr

于 2013-05-30T09:21:43.000 回答