【问题标题】:how to send an array as a parameter to json service in iOS如何将数组作为参数发送到iOS中的json服务
【发布时间】:2013-05-30 09:06:39
【问题描述】:

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

Array 包含 12 个元素。 这里提供样品服务... 此服务的输入参数: dev_id = 1; dev_name= josh 和数组项(项目列表、公司标识符)

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

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

【问题讨论】:

标签: 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-08
        • 1970-01-01
        • 1970-01-01
        • 2011-05-20
        • 2017-03-29
        相关资源
        最近更新 更多