【问题标题】:Convert Dictionaries into one array将字典转换为一个数组
【发布时间】:2012-08-17 07:20:25
【问题描述】:

这段代码:

for (NSDictionary *object in JSONArray) {
         NSMutableArray *birdtemp = [[NSMutableArray alloc] initWithObjects:object[@"case_name"], nil];
        [allparts addObject:birdtemp];
    }

输出此日志:

log: (
        (
        "NZXT Phantom 410"
    ),
        (
        "Thermaltake MK+"
    )
)

我想知道我可以使用什么代码将该日志记录到一个数组中,例如:

log: (

    "NZXT Phantom 410",
    "Thermaltake MK+"
)

Json 数组是:

log: (
        {
        "case_color" = White;
        "case_description" = "";
        "case_image" = "http://sitecom/get/parts/part_images/nzxtphantom410.jpeg";
        "case_name" = "NZXT Phantom 410";
        "case_price" = "99.99";
        "case_type" = ATX;
        id = 1;
    },
        {
        "case_color" = Black;
        "case_description" = "";
        "case_image" = "http://site.com/get/parts/part_images/thernaltake-mkplus.jpeg";
        "case_name" = "Thermaltake MK+";
        "case_price" = "84.99";
        "case_type" = ATX;
        id = 2;
    }
)

【问题讨论】:

  • 什么是 JSONArray,你能打印出它是怎么来的吗
  • [数组 addObject:dictionaryObject];

标签: iphone objective-c ios cocoa-touch foundation


【解决方案1】:
   NSMutableArray *array = [[NSMutableArray alloc] init];
    for (NSDictionary *dict in JSONArray) {

        [array addObject:[dict objectForKey:@"case_name"]];
    }
    NSLog(@"Your Array: %@",array);

我认为这对你会有帮助。

【讨论】:

    【解决方案2】:

    获得所需结果的一种简单方法是使用键值编码 (KVC):

    NSArray *allparts = [JSONArray valueForKey:@"case_name"];
    

    以这种方式在数组上使用键值编码,乍一看可能有点违反直觉,但它非常强大。

    【讨论】:

      【解决方案3】:

      故障排除并得到了这个:

      allparts = [[NSMutableArray alloc] init];
          NSString *birdtemp;
          for (NSDictionary *object in JSONArray) {
                  birdtemp = object[@"case_name"];
              [allparts addObject:birdtemp];
          }
      

      【讨论】:

        【解决方案4】:
        NSMutableArray *birdtemp  = [NSMutableArray ....];   
             for (NSDictionary *object in JSONArray) {
                       [birdtemp addObject:object[@"case_name"]];
              }
             [allparts addObject:birdtemp];
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-07-21
          • 2020-03-11
          • 2021-08-10
          • 1970-01-01
          • 2010-09-16
          • 2018-05-28
          • 2019-05-29
          • 2018-11-22
          相关资源
          最近更新 更多