You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 13:32:17