我有一个由
SwiftyJSON生成的 JSON 数组(例如,
dataObj
),我尝试像这样删除它的元素:
let count=dataObj.count
for var m=x; m<count; ++m {
dataObj[m] = nil // there is no removeAtIndex() somehow
}
print(dataObj.count)
print(dataObj)
执行后,
dataObj.count
保持不变,print
现在显示dataObj
变成
[空, 无效的, 无效的, ... ]
真正删除 SwiftyJSON 元素的方法是什么?
最后我找到了删除 SwiftyJSON 创建的 JSON(数组类型)中的元素的答案:
dataObj.arrayObject?.removeAtIndex(m)
顺便说一句,当 SwiftyJSON 在字典类型中返回 JSON 时删除元素:
jsonObj.dictionaryObject?.removeValueForKey(keyValue)
更新
斯威夫特 3+ -
数组:
dataObj.arrayObject?.remove(at: m)
词典:
jsonObj.dictionaryObject?.removeValue(forKey: keyValue)
更新 Joe 对 Swift 4 的回答。
从 JSON 中删除
dictionary
元素:
json.dictionaryObject?.removeValue(forKey: key)
从 JSON 中删除
array
元素:
json.arrayObject?.remove(at: index)
如果您要存储字典,则可以使用
dictionaryObject.removeValue(forKey:)
删除元素。这会就地改变 JSON 对象。
例如:
var object = JSON([
"one": ["color": "blue"],
"two": ["city": "tokyo",
"country": "japan",
"foods": [
"breakfast": "tea",
"lunch": "sushi"
]
]
])
让我们删除
country
键:
object["two"].dictionaryObject?.removeValue(forKey: "country")
如果您
print(object)
,您会看到 country
键不再存在。
{
"one" : {
"color" : "blue"
},
"two" : {
"city" : "tokyo",
"foods" : {
"breakfast" : "tea",
"lunch" : "sushi"
}
}
}
这也适用于嵌套字典:
object["two"]["foods"].dictionaryObject?.removeValue(forKey: "breakfast")
{
"one" : {
"color" : "blue"
},
"two" : {
"city" : "tokyo",
"foods" : {
"lunch" : "sushi"
}
}
}