Swift构建嵌套REST请求参数遇语法错误,求正确实现方式
正确设置REST请求参数的方法
你的代码报错是因为asset字段的写法完全不符合目标JSON结构:目标里asset是字符串数组,但你错误地给asset赋值了字符串"asset",还额外添加了一个无关的字典,违反了字典字面量的语法规则,才会出现Expected ':' in dictionary literal错误。
匹配目标结构的NSMutableDictionary写法
let params: NSMutableDictionary = [ "asset": ["Images", "BsnName"], "cntToken": "840009561449", "language": "us-en", "idToken": "myToken" ]
更推荐的Swift原生集合写法
如果不需要可变字典,用Swift原生的[String: Any]更符合现代Swift开发习惯:
let params: [String: Any] = [ "asset": ["Images", "BsnName"], "cntToken": "840009561449", "language": "us-en", "idToken": "myToken" ] // 若需要可修改的字典,用var声明: var mutableParams: [String: Any] = [ "asset": ["Images", "BsnName"], "cntToken": "840009561449", "language": "us-en", "idToken": "myToken" ]
关键修正点:
- 直接将
asset的值设置为字符串数组["Images", "BsnName"],完全匹配目标JSON的结构 - 删除了错误的
"asset": "asset"键值对,以及多余的字典嵌套 - 原生集合类型比
NSMutableDictionary更贴合Swift的类型安全特性,日常开发更推荐使用
内容的提问来源于stack exchange,提问作者DavidS
相关产品推荐
相关产品推荐

