Search code examples
iosswift4.1

Grouping from Json data, which contain array of dictionaries in Swift 4


I've local json file, which contains array of dictionaries. I want to group based on key name from below json. Means same name in one group. Please tell me how can I achieve that. Thank you.

Json Data:

[ { "name": "Abc", "number": 123, "marks": 78 }, { "name": "xyz", "number": 456, "marks": 50 }, { "name": "Abc", "number": 789, "marks": 78 } ]

Code:

code and error message


Solution

  • init(grouping:by:)

    You should return value of name key in the closure.

     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]]]