【问题标题】:Mapping JSON response field into NSArray将 JSON 响应字段映射到 NSArray
【发布时间】:2026-01-27 17:25:02
【问题描述】:

回应:

{"rsBody": [{"productId":11, "productImageUrl":"http:xxxx"}, {"productId":9, "productImageUrl":"http:"xxxx"}]}

我知道这是一个重复的问题,但仍然在问原因没有找到正确的方法。我在包含两个对象的array 中从 php 服务器获得了一些响应为JSON。我想在NSArraymap 两个对象productImageUrl 的元素。结果数组应该有点像

NSArray =[{@"url":"productImageUrl1"},{@"url":@"ProductImageUrl2"}, nil];

productImageUrl1 = 第一个对象的元素,productImageUrl2 = 第二个对象的元素。

我正在解析响应并能够从 rsBody 中提取它。

NSDictionary* response=(NSDictionary*)[NSJSONSerialization     
JSONObjectWithData:receivedData options:kNilOptions error:&tempError];

NSArray *rsBody = [response objectForKey:@"rsBody"];

【问题讨论】:

  • 现在有什么问题?继续解析响应并将所需的内容保存到新数组中。

标签: ios objective-c json nsarray


【解决方案1】:

试试这个:

NSMutableArray *arr = [[NSMutableArray alloc] init];

NSDictionary* response = [NSJSONSerialization JSONObjectWithData:receivedData options:kNilOptions error:&tempError];

NSArray *rsBody = [response objectForKey:@"rsBody"];

for (NSDictionary *dict in rsBody)
{
    NSMutableDictionary *dictURL = [[NSMutableDictionary alloc] init];
    [dictURL setValue:[dict valueForKey:@"productImageUrl"] forKey:@"url"];
    [arr addObject:dictURL];
}

NSLog(@"%@", arr);

【讨论】:

  • 感谢可爱的天使......如果它有效,将尝试接受它作为答案。