【发布时间】:2018-01-15 12:39:08
【问题描述】:
我有一个 JSON 对象,其中包含名称和值的列表。我想将另一个数组 [String] 与它进行比较,如果在 JSON 对象值之一中找到该值,则将该值合并到一个新对象中。
我曾尝试在for 循环中使用merge(with),但是,它似乎只合并了一个值。
> example: > > json_cat = > > { > name: "aaa", > surname: "aaa-1", > grade: "aaa-2" > }, > { > name: "bbb", > surname: "bbb-1", > grade: "bbb-2" > }, > { > name: "ccc", > surname: "ccc-1", > grade: "ccc-2" > } > // > let arraytest:[String] = ["aaa", "ccc", "ddd"] > // array json_cat compare arraytest > result = { > name: "aaa", > surname: "aaa-1", > grade: "aaa-2" > }, > { > name: "ccc", > surname: "ccc-1", > grade: "ccc-2" > }
let json_cat: JSON = "json from url"
let arraytest:[String] = ["aaa", "ccc", "ddd"]
var json_cat_array = JSON()
json_cat.forEach({ (index, json_p) in
if arraytest.contains(json_p["name"].string!) {
//print("\(index) - \(json_p)")
try! json_cat_array.merge(with: json_p)
}
})
【问题讨论】:
-
你试过
append吗? -
你检查过我的解决方案了吗?