我有一个非常大的JSON文件,我已经从网上下载了,我需要在Swift中解析它。 JSON构造是一个字典数组。每个字典对象都包含一个" phone" (指电话号码),其值是字符串形式的实际电话号码。
我想要做的是遍历数组中的整个字典对象列表,并确保没有字符对象具有相同的键值," phone"。如果找到重复,我想从列表中删除它,并将其打印到控制台。
以下是我的相关代码:
guard let json = try? JSONSerialization.jsonObject(with: data) as? [[String: Any]] else {
print("error")
return
}
for dict in json! {
//This is where I would do the check
}
我将如何做到这一点?
答案 0 :(得分:1)
你可以这样做
var ph = [String]()
var newjson = [[String:String]]()
for dict in json {
if ph.contains(dict["Phone"]!) {
print("duplicate phone \(dict["Phone"]!)")
} else {
ph.append(dict["Phone"]!)
newjson.append(dict)
}
}
print(newjson)
Hare newjson是没有重复电话的新字典数组
答案 1 :(得分:0)
使用数组扩展方法从json对象中删除重复项
extension Array where Element: Equatable {
mutating func removeDuplicates() {
var result = [Element]()
for value in self {
if !result.contains(value) {
result.append(value)
}
}
self = result
}
}
Alamofire.request(apiURL, method: .get, parameters:parameters, headers:headers)
.responseJSON { response in
if let result = response.result.value {
let json = JSON(result)
var listArray = json["somekey"].arrayValue
listArray.removeDuplicates()
print(listArray)
}
}