我目前正在向后端发送一组字典,如下所示-
"args": [
{
"mobileData" = {
"accessState" = 1;
"changeState" = 0;
};
},
{
"bluetooth" = {
"accessState" = 1;
"changeState" = 0;
};
}]
我使用Swift4可编码协议对这些进行编码/解码,效果很好。
然而,后端期望整个args
作为一个对象(字典(,其中包含所有其他KVP(例如,mobileData、蓝牙等(,如以下-
"args":{
"mobileData":{
"accessState":1,
"changeState":0
},
"bluetooth" = {
"accessState" = 1;
"changeState" = 0;
};
}
我不知道如何使用Swift可编码协议来创建这样的东西,而不将"args"中的"value"设为字符串。如有任何帮助,我们将不胜感激。我是不是错过了一些显而易见的东西?
每个字典都由一个结构表示。像这样:
struct States:Encodable {
let accessState:Int
let changeState:Int
}
struct Args:Encodable {
let mobileData:States
let bluetooth:States
}
struct Wrapper:Encodable {
let args:Args
}
let json = Wrapper(
args: Args(
mobileData: States(accessState: 1, changeState: 0),
bluetooth: States(accessState: 1, changeState: 0)
)
)
let data = JSONEncoder().encode(json)
print(String(data: data, encoding: .utf8)!)
// {"args":{"mobileData":{"accessState":1,"changeState":0},"bluetooth":{"accessState":1,"changeState":0}}}