gpt4 book ai didi

swift - 更改 json 对象的值

转载 作者:搜寻专家 更新时间:2023-11-01 06:21:23 25 4
gpt4 key购买 nike

我从服务器接收到一个对象

var profileDictionary = users.allDocuments[0].valueForKey("profile") 
print("profileDictionary: \(profileDictionary)")

看起来像底部的控制台输出。

我想更改 [name][first] 字段(不幸的是 Elon 还不是客户),并将对象发送回服务器以更新记录。我怎样才能做到这一点?

我试过这个:

profileDictionary["name"]!["first"] as String = "Karlos"

但它给出了错误:无法分配给“字符串”类型的不可变表达式

我也试过

profileDictionary!["name"]!!["first"]  = "Karlos"

然后错误是:无法分配给“AnyObject?!”类型的不可变表达式

如果我将 profileDictionary 更改为 NSDictionary

var profileDictionary = users.allDocuments[0].valueForKey("profile") as! NSDictionary
profileDictionary["name"]!["first"] = "Karlos"

我遇到同样的错误:无法分配给类型为“AnyObject?!”的不可变表达式

使用 SwiftyJSON 我可以轻松地更改一个值,但它会弄乱类型,例如将 1 变成 true。

如何更改此对象中的值?

非常感谢任何帮助!谢谢。

控制台输出

Optional({
address = {
city = "";
country = nor;
lineOne = "";
lineTwo = "";
zip = "";
};
card = {
last4 = 4242;
verified = 1;
};
filledOut = 1;
name = {
first = Elon;
last = Musk;
};
phone = 911;
validated = 1;
})

最佳答案

试试这个(完整的快速实现):

var profileDictionary = ["address" : ["city" : "" , "country" : "nor" , "lineOne" : "" , "lineTwo" : "", "zip" : ""], "card" : ["last4" : 4242 , "verified" : 1] , "filledOut" : 1 , "name" : ["first" : "Elon" , "last" : "Musk"] , "phone" : 911 , "validated" : 1]

print(profileDictionary) // This prints first name as Elon

var nameDict = profileDictionary["name"] as! Dictionary<String,String>
nameDict["first"] = "Karlos"
profileDictionary["name"] = nameDict

print(profileDictionary) // This prints first name as Karlos

关于swift - 更改 json 对象的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33462071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com