我有一个多级结构,可以将复杂的JSON数据转换为结构。我正在努力改变数据结构。组指向presentValue元素值的条件。
var dataStruct : DataStruct = load("jsonfile.json")
struct DataStruct : Codable {
let name: String
var group: [groupData]
}
struct groupData: Codable, Hashable {
let id, name : String
var point : [pointInfo]
}
struct pointInfo : Codable, Hashable {
let id : String
let address : address
let name : String
var presentValue : String
}
struct address: Codable, Hashable {
let index: String
let type: String
}
我尝试了下面的map函数,但编译器抱怨ForEach中的组是'let'常量。
基本上,函数应该是比较的
住址指数
结构中的字段传递给
点不
变量,一旦找到它(唯一),就指向。presentValue将更改为新值。
正确的方法是什么?
func updatePresentValue(pointNo : String) {
dataStruct.group.forEach { Group in
Group.point = Group.point.map { point -> pointInfo in
var p = point
if point.address.index == pointNo {
p.presentValue = "New value"
return p
}
else { return p }
}
}
}