如何删除 SwiftyJSON 元素?

问题描述 投票:0回答:3

我有一个由

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 元素的方法是什么?

ios swift swifty-json
3个回答
11
投票

最后我找到了删除 SwiftyJSON 创建的 JSON(数组类型)中的元素的答案:

dataObj.arrayObject?.removeAtIndex(m)

顺便说一句,当 SwiftyJSON 在字典类型中返回 JSON 时删除元素:

jsonObj.dictionaryObject?.removeValueForKey(keyValue)

更新

斯威夫特 3+ -

数组:

dataObj.arrayObject?.remove(at: m)

词典:

jsonObj.dictionaryObject?.removeValue(forKey: keyValue)

5
投票

更新 Joe 对 Swift 4 的回答。

从 JSON 中删除

dictionary
元素:

json.dictionaryObject?.removeValue(forKey: key)

从 JSON 中删除

array
元素:

json.arrayObject?.remove(at: index)

0
投票

如果您要存储字典,则可以使用

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"
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.