假设是否有一组测试,并想将每个测试动态添加到我的请求中,以使外观如下所示:
data[Security][check]
data[Test][%d][Participant][device_id]
data[Test][%d][Participant][id]
data[Test][%d][Participant][email]
data[Test][%d][Participant][firstname]
data[Test][%d][Participant][lastname]
data[Test][%d][test_id]
data[Test][%d][question_id]
data[Test][%d][answer]
其中%d是测试数组中测试的索引。
我将如何在for循环中动态构造此参数集?
我猜我不能使用parameters.updateValue()
,因为我需要一个嵌套键。但是参数[Test][<index>][Participant][<device_id>]
给了我一个编译器错误。
答案 0 :(得分:0)
您必须为参数对象中的每一层分别创建一个Dictionary<String, Any>
,即
var data = Dictionary<String, Any>()
var test = Dictionary<String, Any>()
var index = Dictionary<String, Any>()
var content = Dictionary<String, Any>()
var participant = Dictionary<String, Any>()
//and then fill your dicitionaries from inside to outside
participant.updateValue(1, forKey:"deviceId")
participant.updateValue(12, forKey:"id")
//...
content.updateValue(participant, forKey:"Participant")
content.updateValue(1, forKey:"testId")
//...
index.updateValue(content, forKey: "0")
test.updateValue(index, forKey: "Test")
data.updateValue(test, forKey:"data")