如何解析 json 值的动态变化。带有 2 个嵌套 dic 的字典,然后是数组,然后是 dic
Posted
技术标签:
【中文标题】如何解析 json 值的动态变化。带有 2 个嵌套 dic 的字典,然后是数组,然后是 dic【英文标题】:How to parse Dynamic changes in json value. Dictionary with 2 nested dic & then array and then dic again 【发布时间】:2015-03-20 05:18:47 【问题描述】:字典有两个嵌套字典,然后是数组,然后又是字典我如何通常为目标 c,ios 8 编写代码;
"brands":
"Clinique":
"Foundation":
"Even Better Makeup SPF 15":
"productName": "Even Better Makeup SPF 15",
"colors": [
"id": "30816",
"client_id": "1422956000sjdaC",
"product_id": "190",
"shade_name": "Alabaster",
"shade_code": "#F0C9AE",
"color_id": null,
"image_url": "",
"price": "",
"offer": "",
"created_by": "1422956000sjdaC",
"created_date": "2015-03-06",
"sku_id": "",
"product_web_url": "",
"brand_id": "Clinique",
"product_name": "Even Better Makeup SPF 15",
"makeup_type": "Foundation",
"color_family": "cool"
,
【问题讨论】:
“json 值的动态变化”是什么意思? 我可以看到缺少几个花括号。请提供完整的“Json 响应”代码。 如果后端数据(json数据)可以频繁更改。@HuyNghia 最后缺少三个大括号。 @UmangBista 您如何获取数据,使用 AFNetworking 或其他方式? 【参考方案1】:正如我所见,您的 JSON 响应正在发送产品详细信息,因此
"brands":
"Clinique":
"Foundation":
将始终保持不变,其下方的响应将根据产品而变化。
NSDictionary *jsonDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
NSDictionary *productsDict = [[jsonDictionary objectForKey:@"brands"] objectForKey:@"Clinique"] objectForKey:@"Foundation"];
NSArray *keys=[productsDict allKeys];
for (int i = 0; i < keys.count; i++)
NSDictionary *prodSingle = [productsDict objectForKey:[NSString StringWithFormat:@"%@",keys[i]]];
现在你有了 prodSingle,用它来获取每个产品的数据。
注意:未经测试,如果这不起作用,我将提供一个测试版本。
编辑:
正如你所说,只有brands
键会保持不变,其他键会动态变化,
你应该这样做:
所以你可以做的是创建一个带有 jsonData(response data) 的 NSDictionary,如下所示:
NSDictionary *jsonDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
创建品牌词典
NSDictionary *brandsDict = [jsonDictionary objectForKey:@"brands"];
现在获取所有密钥:
NSArray *keys= [brandsDict allKeys];
现在使用您在 Array 中获得的每个键来相应地获取数据。
【讨论】:
好的兄弟,我问我的键值动态变化,除了“品牌”。 我已经用这个方法了。如果假设我在品牌中有 100 个键值,我选择 100 个方法,每次循环将生成 100 次。应用会崩溃 它的动态键值。常量键值仅是“品牌” 答案已编辑。我只能为您提供提示,而不是您所看到的完整代码。 我也可以从我的网络数据中清楚地解释。 Web 数据中有四个列表视图。如果我选择一个列表视图,则它会根据第一个列表视图选择显示第二个列表视图,如根据先前选择的第三个和第四个列表视图以上是关于如何解析 json 值的动态变化。带有 2 个嵌套 dic 的字典,然后是数组,然后是 dic的主要内容,如果未能解决你的问题,请参考以下文章
使用 Pandas 在巨大的 CSV 中解析带有嵌套值的 JSON 列