NSDictionary - 将相同的 id'ed 元素堆叠到另一个字典中
Posted
技术标签:
【中文标题】NSDictionary - 将相同的 id\'ed 元素堆叠到另一个字典中【英文标题】:NSDictionary - stacking same id'ed elements into another DictionaryNSDictionary - 将相同的 id'ed 元素堆叠到另一个字典中 【发布时间】:2020-03-23 13:14:37 【问题描述】:我有一本字典,这本字典的值如下:
编辑:不是json,直接是字典
[
"personel_id" = 23;
"task_id" = 125;
,
"personel_id" = 34;
"task_id" = 125;
,
"personel_id" = 40;
"task_id" = 126;
]
我想将具有相同 task_id 的那些组合成一个二维数组或字典 - 我不知道哪个更好 - 这就像
"personel_id" = 23,34;
"task_id" = 125
"personel_id" = 40;
"task_id" = 126;
或
125 = 23,34
126 = 40
我已经尝试了很多我在互联网上找到的东西,但无法管理它。
【问题讨论】:
请展示您的尝试 他们中的大多数都脱离了上下文,这就是我无法管理它的原因。 【参考方案1】:试试
let dec = JSONDecoder()
dec.keyDecodingStrategy = .convertFromSnakeCase
let res = try! dec.decode([Root].self, from: date)
let grouped = Dictionary(grouping: res, by: $0.taskId )
struct Root : Codable
let personalId, taskId : Int
【讨论】:
.keyDecodingStrategy = .convertFromSnakeCase
,很酷,这从来都不是新鲜事!【参考方案2】:
最后,我找到了答案:
let groupedDictionary = Dictionary(grouping: self.myDictionary)
(personel) -> String in
return personel.value(forKey: "task_id") as! String
我使用了分组功能,效果很好。
【讨论】:
以上是关于NSDictionary - 将相同的 id'ed 元素堆叠到另一个字典中的主要内容,如果未能解决你的问题,请参考以下文章
通过电子邮件发送的 NSDictionary 文件与应用程序中的相同文件不同
将 NSDictionary 对象转换为 NSData 对象,反之亦然
无法将 JSONValue 写入 NSDictionary - JSON 框架不起作用