Ios 为JSON创建嵌套字典
我试图为POST请求复制json格式,但在Swift中使用以下2D字典时遇到问题Ios 为JSON创建嵌套字典,ios,json,swift,dictionary,mobile,Ios,Json,Swift,Dictionary,Mobile,我试图为POST请求复制json格式,但在Swift中使用以下2D字典时遇到问题 payload = {"cardholder": { "address": { "city": "city", "state": "MA", "street": "street", &q
payload = {"cardholder": {
"address": {
"city": "city",
"state": "MA",
"street": "street",
"zip_code": "11111"
},
"shipping_address": {
"city": "city",
"state": "MA",
"street": "street",
"zip_code": "11111"
}
}}
有没有办法设置addressDetails和shippingDetails
var addressDetails = ["city": self.newCity!, "state": self.newState!,"street": self.newStreet!,"zip_code": self.newZipcode!]
var shippingDetails = ["city": self.newCity!, "state": self.newState!,"street": self.newStreet!,"zip_code": self.newZipcode!]
if self.newUnit != ""{
addressDetails["unit"] = self.newUnit!
shippingDetails["unit"] = self.newUnit!
}
var test: [String:[String:[String:String]]] = ["cardholder": ["address": addressDetails]]
回答你的问题:是的。您需要做的一切就是将
shippingDetails
添加到测试[“持卡人”]
dict:
var测试:[字符串:[字符串:[字符串:字符串]]=[“持卡人”:[“地址”:地址详细信息,“发货地址”:发货详细信息]]
然而,我完全同意@Paulw11,你不应该那样摆弄字典。使用符合Codable
的结构:
结构地址:可编码{
var城市:字符串
变量状态:字符串
华尔街:字符串
var-zipCode:String
变量单位:字符串?
枚举编码键:字符串,编码键{
案例城市、州、街道、zipCode=“邮政编码”,单位
}
}
结构持卡人:可编码{
变量地址:地址
var shippingAddress:地址
枚举编码键:字符串,编码键{
案例地址,shippingAddress=“发货地址”
}
}
结构有效负载:可编码{
var持卡人:持卡人
}
...
让addressDetails=地址(城市:self.newCity!、州:self.newState!、街道:self.newStreet!、zipCode:self.newZipcode!、单位:self.newUnit==“”?无:self.newUnit)
let shippingDetails=地址(城市:self.newCity!、州:self.newState!、街道:self.newStreet!、zipCode:self.newZipcode!、单位:self.newUnit==“”?无:self.newUnit)
var测试=有效载荷(持卡人:持卡人(地址:addressDetails,shippingAddress:shippingDetails))
在使用JSON和Swift时,应始终尝试将Codable
与适当的结构一起使用。它比尝试处理原始集装箱更简单、更可靠。装运地址是持卡人的属性
-您需要将该键/值添加到与持卡人相关的字典中