删除 SwiftyJSON 数组中的字典记录
deleting a dictionary record in a SwiftyJSON array
Swift 3.0 iOS 10.x SwiftyJSON
我有一个 SwiftyJSON 字典对象数组,如下所示...
[
{
"figure" : 1326,
"account" : "Charles"
}
{
"figure" : 2361,
"account" : "James"
}
]
我想删除其中属于"James"的记录,我想出了这段代码。 jsonObjects 包含您在上面看到的数组。
var json2S = sharedDataAccess.jsonObjects
for json2DX in 0..<json2S.count {
var delIndex: Int? = nil
for (jsonK, subJson) in sharedDataAccess.jsonObjects[json2DX] {
print("json2D \(jsonK) \(subJson.stringValue) \(Name)")
if jsonK == "account" && subJson.stringValue != Name {
delIndex = json2DX
print("DELETE IT \(jsonK) \(subJson.stringValue) \(Name)")
}
}
if delIndex != nil {
json2S[0].arrayObject?.remove(at: delIndex!)
print("DELETING IT \(delIndex) \(Name)")
}
}
sharedDataAccess.jsonObjects = JSON(json2S)
它有效,但不是我希望的那样。它删除了 James [假设 Name 变量包含 James],但它留给我了这个。
[
null,
{
"figure" : 1326,
"account" : "Charles"
}
]
James 被替换为 null...一个我不想要的 null,我怎样才能删除条目但得不到 null 或者实际上也只是删除 null!!
好的,这是我的答案。将其张贴以备不时之需;逻辑不完全相同,但遵循了 Vadian 的观点。
var json2S = sharedDataAccess.jsonObjects
var jsonA:[[String:Any]] = []
for json2P in sharedDataAccess.jsonObjects {
print("json2P \(json2P)")
var jsonDict:[String:Any] = [:]
var json2Save = false
for (jsonK, subJson) in json2P {
print("jsonK \(jsonK) \(subJson.stringValue) \(fnName)")
jsonDict[jsonK] = subJson.stringValue
if jsonK == "account" && subJson.stringValue == fnName {
json2Save = true
}
}
if json2Save {
jsonA.append(jsonDict)
}
}
let sharedDataAccess.jsonObjects = JSON(jsonA)
Swift 3.0 iOS 10.x SwiftyJSON
我有一个 SwiftyJSON 字典对象数组,如下所示...
[
{
"figure" : 1326,
"account" : "Charles"
}
{
"figure" : 2361,
"account" : "James"
}
]
我想删除其中属于"James"的记录,我想出了这段代码。 jsonObjects 包含您在上面看到的数组。
var json2S = sharedDataAccess.jsonObjects
for json2DX in 0..<json2S.count {
var delIndex: Int? = nil
for (jsonK, subJson) in sharedDataAccess.jsonObjects[json2DX] {
print("json2D \(jsonK) \(subJson.stringValue) \(Name)")
if jsonK == "account" && subJson.stringValue != Name {
delIndex = json2DX
print("DELETE IT \(jsonK) \(subJson.stringValue) \(Name)")
}
}
if delIndex != nil {
json2S[0].arrayObject?.remove(at: delIndex!)
print("DELETING IT \(delIndex) \(Name)")
}
}
sharedDataAccess.jsonObjects = JSON(json2S)
它有效,但不是我希望的那样。它删除了 James [假设 Name 变量包含 James],但它留给我了这个。
[
null,
{
"figure" : 1326,
"account" : "Charles"
}
]
James 被替换为 null...一个我不想要的 null,我怎样才能删除条目但得不到 null 或者实际上也只是删除 null!!
好的,这是我的答案。将其张贴以备不时之需;逻辑不完全相同,但遵循了 Vadian 的观点。
var json2S = sharedDataAccess.jsonObjects
var jsonA:[[String:Any]] = []
for json2P in sharedDataAccess.jsonObjects {
print("json2P \(json2P)")
var jsonDict:[String:Any] = [:]
var json2Save = false
for (jsonK, subJson) in json2P {
print("jsonK \(jsonK) \(subJson.stringValue) \(fnName)")
jsonDict[jsonK] = subJson.stringValue
if jsonK == "account" && subJson.stringValue == fnName {
json2Save = true
}
}
if json2Save {
jsonA.append(jsonDict)
}
}
let sharedDataAccess.jsonObjects = JSON(jsonA)