Swift - 是否有“具有重复键的字典”解决方案?

5

目前我正在使用alamofire向某个网站发送Post请求。在Post请求的参数中,有一个必须发送的重复键入口。但是当我创建字典并输入两个键时,它们作为字符串文字重复,导致我收到“字典中有重复键”这个不友好的错误,从而无法使用所需的参数。例如:

let post_data = [
    "test": "0",
    "test": "1"
]

Alamofire.request("https://testsite.com/testpost", method: .post, parameters: post_data).responseString { (data) in
    print(data)
  }

在编写代码时,出现了与post_data字典相关的错误,导致我无法运行代码。我想知道是否有任何解决此错误的方法。我查阅了多个stackoverflow问题,但大多数都是讨论如何删除重复键而不是解决它们。谢谢!


2
网站的API出现了问题。test的值应该是一个数组。如果你不能改变它,那么你就必须手动构建POST数据字符串。 - Paulw11
@Paulw11 太棒了!感谢您如此迅速的回复!非常感谢您的答案! - David K
1个回答

5

尝试使用 DictionaryLiteral

let a: DictionaryLiteral = [
    "a": 0,
    "a": 1,
]

print(a) // DictionaryLiteral<String, Int>(_elements: [("a", 0), ("a", 1)])

1
注意:DictionaryLiteral不符合Encodable协议,因此它可能无法满足您的使用情况。 - Avi
它确实解决了问题,但正如你所说,因为它不符合Encodable的要求,它将无法与Alamofire一起使用。尽管如此,我很感激你的回答! - David K

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接