我有像这样的json
"myAlert": [{
"usa_time": "2018-04-27 10:42:45",
"vs_title": "Kenya ",
"vs_start_time": "2018-04-29 18:00:00",
"vs_end_time": "2018-04-29 18:50:00",
"vs_status": "1",
"vs_add_time": "2018-04-29 00:00:00"
}, {
"usa_time": "2018-04-27 10:42:37",
"vs_title": "Association",
"vs_start_time": "2018-04-29 14:45:00",
"vs_end_time": "2018-04-29 15:30:00",
"vs_status": "1",
"vs_add_time": "2018-04-29 00:00:00"
}, {
"usa_time": "2018-04-27 10:42:27",
"vs_title": "Negotiations ",
"vs_start_time": "2018-04-28 19:00:00",
"vs_end_time": "2018-04-28 19:45:00",
"vs_status": "1",
"vs_add_time": "2018-04-28 00:00:00"
}, {
"usa_time": "2018-04-27 10:42:27",
"vs_title": "Negotiations ",
"vs_start_time": "2018-04-28 19:00:00",
"vs_end_time": "2018-04-28 19:45:00",
"vs_status": "1",
"vs_add_time": "2018-04-28 00:00:00"
}]
我想将此数据过滤为vs_add_time
。如果数据具有相似的vs_add_time
,则该日期将变为节,并且具有相同日期的数据将作为字典组合成日期数组。
我想将数据过滤为以下格式:
"myAlert": [
'2018-04-29': [{
"usa_time": "2018-04-27 10:42:45",
"vs_title": "Kenya ",
"vs_start_time": "2018-04-29 18:00:00",
"vs_end_time": "2018-04-29 18:50:00",
"vs_status": "1",
"vs_add_time": "2018-04-29 00:00:00"
}, {
"usa_time": "2018-04-27 10:42:41",
"vs_title": "Kiyoshi El ",
"vs_start_time": "2018-04-29 16:00:00",
"vs_end_time": "2018-04-29 17:30:00",
"vs_status": "1",
"vs_add_time": "2018-04-29 00:00:00"
}, ],
'2018-04-28': [{
"usa_time": "2018-04-27 10:42:27",
"vs_title": "Negotiations ",
"vs_start_time": "2018-04-28 19:00:00",
"vs_end_time": "2018-04-28 19:45:00",
"vs_status": "1",
"vs_add_time": "2018-04-28 00:00:00"
}, {
"usa_time": "2018-04-27 10:42:27",
"vs_title": "Negotiations ",
"vs_start_time": "2018-04-28 19:00:00",
"vs_end_time": "2018-04-28 19:45:00",
"vs_status": "1",
"vs_add_time": "2018-04-28 00:00:00"
}]
]
有人能让我走上正轨吗?
提前谢谢
答案 0 :(得分:1)
您可以使用Dictionary(grouping:by:)
作为:
let groupedDict = Dictionary(grouping: myAlert, by: { $0["vs_add_time"]! })
<强>词典(分组:由:)强>
创建一个新字典,其键是给定闭包返回的分组,其值是返回每个键的元素的数组。
&#34;值中的数组&#34;新词典的位置每个包含至少一个元素,其元素与源序列的顺序相同。