Ваша структура представляет собой массив словарей. При отображении каждый элемент будет словарем. Используйте этот словарь для создания нового словаря, в котором NSNull
s были заменены пустыми строками:
let recordsList: [[String : Any]] = [
[
"Id": 20,
"Name": "Name String",
"Email": NSNull()
]
]
let result: [[String : Any]] = recordsList.map { dict in
var newdict = [String : Any]()
for (k, v) in dict {
newdict[k] = v is NSNull ? "" : v
}
return newdict
}
print(result)
[["Email": "", "Id": 20, "Name": "Name String"]]
Это также можно сделать с помощью Dictionary(uniqueKeysWithValues:)
и путем сопоставления словаря, чтобы изменить пустые строки на пустые:
let result: [[String : Any]] = recordsList.map { dict in
Dictionary(uniqueKeysWithValues: dict.map { (k, v) in (k, v is NSNull ? "" : v) })
}
Ваш вопрос помечен NSDictionary
. Это может быть приспособлено с несколькими изменениями:
let result: [NSDictionary] = recordsList.map { dict in
Dictionary(uniqueKeysWithValues: (dict as! [AnyHashable : Any]).map { (k, v) in (k, v is NSNull ? "" : v) }) as NSDictionary
}