【问题标题】:iOS NSDictionary accessing a JSON valueiOS NSDictionary 访问 JSON 值
【发布时间】:2018-01-25 22:07:03
【问题描述】:

如果这是从 JSON 获取请求返回的 NSDictionary,我如何访问“display_name”中的值?

这是我迄今为止尝试过的:

NSString *carName = vehicleListDict[@"response:display_name"]; 
NSString *carName = vehicleListDict[@"display_name"];

{
  "response": [
    {
      "color": null,
      "display_name": "hello",
      "id": 321,
      "option_codes": "MS01,RENA,TM00,DRLH,PF00,BT85,PBCW,RFPO,WT19,IBMB,IDPB,TR00,SU01,SC01,TP01,AU01,CH00,HP00,PA00,PS00,AD02,X020,X025,X001,X003,X007,X011,X013",
      "user_id": 123,
      "vehicle_id": 1234567890,
      "vin": "5YJSA1CN5CFP01657",
      "tokens": [
        "x",
        "x"
      ],
      "state": "online"
    }
  ],
  "count": 1
}

【问题讨论】:

  • 你试过什么?这篇文章一点也不努力。
  • NSString *carName = vehicleListDict[@"response:display_name"]; NSString *carName = vehicleListDict[@"display_name"];
  • 在您的帖子中包含此内容!
  • 在提出此类问题之前请阅读文档。如果您甚至不尝试搜索和阅读某些内容,您将永远不会取得任何成功。 developer.apple.com/documentation/foundation/…

标签: ios json nsdictionary


【解决方案1】:

假设,结果存储在一个名为 dictResponseData 的字典变量中

NSArray *arrResponse = [dictResponseData objectForKey:@"response"];

for (NSDictionary *dict in arrResponse) {

    //strDisplayName holds the value you want
    NSString *strDisplayName = [dict objectForKey:@"display_name"];
}

【讨论】:

    【解决方案2】:

    在您的回复中,您可以看到 response 包含一个数组 if 项,因此让我们获取该数组:

    NSArray *response = vehicleListDict[@"response"];
    

    然后我们可以像这样的值:

    NSString *displayName = nil;
    if (response.count > 0) {
        NSDictionary *vehicle = response[0];
        displayName = vehicle[@"display_name"];
    }
    

    【讨论】:

      【解决方案3】:
      NSDictionary *responseDictionary = json[@"response"][0]; 
      NSString *displayName = responseDictionary[@"display_name"];
      

      【讨论】:

        猜你喜欢
        • 2020-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-21
        相关资源
        最近更新 更多