从 Json 数据中分组,其中包含 Swift 4 中的字典数组
Posted
技术标签:
【中文标题】从 Json 数据中分组,其中包含 Swift 4 中的字典数组【英文标题】:Grouping from Json data, which contain array of dictionaries in Swift 4 【发布时间】:2018-06-13 13:18:26 【问题描述】:我有本地 json 文件,其中包含字典数组。我想根据 json 下面的键名进行分组。表示一组同名。请告诉我我怎样才能做到这一点。谢谢你。
Json 数据:
[ “名称”:“ABC”, “数字”:123, “分数”:78 , “名称”:“xyz”, “数字”:456, “分数”:50 , “名称”:“ABC”, “数字”:789, “分数”:78 ]
代码:
code and error message
【问题讨论】:
“组”是什么意思?您的意思是按名称值对它们进行排序吗? 我的意思是一侧的同名值。 【参考方案1】:init(grouping:by:)
你应该在闭包中返回 name 键的值。
let arr = [ [ "name": "Abc", "number": 123, "marks": 78 ], [ "name": "xyz", "number": 456, "marks": 50 ], [ "name": "Abc", "number": 789, "marks": 78 ] ]
let dict = Dictionary(grouping: arr) $0["name"] as! String
print(dict)
//["Abc": [["name": "Abc", "number": 123, "marks": 78], ["name": "Abc", "number": 789, "marks": 78]], "xyz": [["name": "xyz", "number": 456, "marks": 50]]]
【讨论】:
我也是这样做的。我收到错误。我的代码有什么问题?你能识别吗? @user3516627 声明你的数组内容的真正字典类型,而不是Any
,这个解决方案就可以了。
我无法从中提取数据。我的意思是如何从每个集合(“Abc”和“xyz”)中提取值并对该特定组的成员进行操作并将其存储在数组或类似的位置的一个位置。以上是关于从 Json 数据中分组,其中包含 Swift 4 中的字典数组的主要内容,如果未能解决你的问题,请参考以下文章
如何在 swift 4 中使用 JSONDecoder 从嵌套 JSON 中获取数据?
处理包含多种类型的 JSON 数组 - Swift 4 Decodable