加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift JSON为现有字典添加新密钥

发布时间:2020-12-14 04:35:08 所属栏目:百科 来源:网络整理
导读:我正在使用Alamofire和 SwiftyJSON来获取和管理来自API的数据 在做出初始请求后,我最终得到了JSON类型的嵌套集合 根据SwiftyJSON,我可以像这样循环数据 https://github.com/SwiftyJSON/SwiftyJSON#loop for (key: String,subJson: JSON) in json { //Do some
我正在使用Alamofire和 SwiftyJSON来获取和管理来自API的数据
在做出初始请求后,我最终得到了JSON类型的嵌套集合

根据SwiftyJSON,我可以像这样循环数据
https://github.com/SwiftyJSON/SwiftyJSON#loop

for (key: String,subJson: JSON) in json {
   //Do something you want
}

再说一遍,根据SwiftyJSON,我应该可以像这样设置新的值:
https://github.com/SwiftyJSON/SwiftyJSON#setter

json["name"] = JSON("new-name")

我有一个嵌套的数据集合,我可以深入挖掘,但我无法改变对象并设置新的键:值对.我如何在Swift中做到这一点?

这是我的代码:

for (key: String,stop: JSON) in stops {
                var physicalStops = stop["physicalStops"]
                for (key: String,physicalStop: JSON) in physicalStops {
                    println("Prints out (physicalStop) just fine")
                   // physicalStop["myNewkey"] = "Somevalue" // DOES NOT WORK (@lvalue is not identical to 'JSON)
                   // physicalStop["myNewkey"] = JSON("Somevalue") //SAME Story
                }
            }

基本上我想保留原始JSON对象的相同结构,但在每个子对象的第二级嵌套上添加额外的key:value.

解决方法

首先,您可以在for循环中使用var来使值在循环内可修改.但是,JSON是struct,因此它表现为值类型,因此在嵌套示例中,您还必须将子JSON重新分配给父JSON,否则它只是修改循环内的值而不是原始结构中的值

var json: JSON = ["foo": ["amount": 2],"bar": ["amount": 3]]
for (key: String,var item: JSON) in json {
     println("(key) -> (item)")
     item["price"] = 10
     json[key] = item
}
println(json)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读