NSDictionary - укладка тех же идентифицированных элементов в другой словарь - PullRequest
0 голосов
/ 23 марта 2020

У меня есть словарь, этот словарь имеет такие значения, как:

edit: это не json, его словарь напрямую

[{
    "personel_id" = 23;
    "task_id" = 125;
}, {
    "personel_id" = 34;
    "task_id" = 125;
}, {
    "personel_id" = 40;
    "task_id" = 126;
}]

Я хотел бы сгруппировать те, что с тот же task_id в 2d массив или словарь - я не знаю, какой из них лучше - который будет похож на

{
  "personel_id" = {23,34};
  "task_id" = 125
}
{
"personel_id" = 40;
    "task_id" = 126;
}

или

125 = {23,34}
126 = {40}

Я пробовал так много вещей, насколько далеко как я нашел в inte rnet, но не смог с этим справиться.

Ответы [ 2 ]

2 голосов
/ 23 марта 2020

Попробуйте

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 
}
0 голосов
/ 23 марта 2020

Наконец я нашел ответ:

let groupedDictionary = Dictionary(grouping: self.myDictionary) {
                (personel) -> String in
                return personel.value(forKey: "task_id") as! String
            }

Я использовал функцию группировки, которая работала нормально.

...