【问题标题】:How to pass nil as a param of dictionary<String,AnyObject>如何将 nil 作为字典的参数传递 <String,AnyObject>
【发布时间】:2016-07-11 18:50:18
【问题描述】:

我有一个 Dictionary&lt;String, AnyObject&gt; 类型的字典,我需要将参数作为 nil 传递:

let params = [
            "number": nil,
            "description": nil,
            "lang" : "spa",
            "byFee": true,
            "plan" : data.Plan
            ] as Dictionary<String, AnyObject>

        request.HTTPBody = try! NSJSONSerialization.dataWithJSONObject(params, options: [])

如果我这样做,我会得到一个错误:

所以我尝试将字典更改为Dictionary&lt;String, AnyObject?&gt;

但如果我这样做了,那么 request.HTTBody 中就会出现错误:

【问题讨论】:

  • 您需要 JSON 为这些键包含什么内容?
  • 根据定义,Swift 字典的任何值都不能是nilnil 值由缺少键表示。
  • 作为建议:将错误复制为文本,而不是图像,以便可以更轻松地选择/复制/搜索它们。

标签: swift swift2


【解决方案1】:

JSON 中的 null 值等价于 ObjC/Swift 中的 NSNull

let params : [String : AnyObject] = [
    "number": NSNull(),
    "description": NSNull(),
    "lang" : "spa",
    "byFee": true,
    "plan" : data.Plan,
]

【讨论】:

  • 你需要NSNull(),而不是NSNull
  • @OOPer 谢谢!固定
【解决方案2】:

试试这个,

let params = [
        "number": "",
        "description": "",
        "lang" : "spa",
        "byFee": true,
        "plan" : data.Plan
        ] as Dictionary<String, AnyObject>

    request.HTTPBody = try! NSJSONSerialization.dataWithJSONObject(params, options: [])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 2021-09-26
    • 2021-09-27
    • 2019-11-18
    • 2021-12-14
    • 1970-01-01
    相关资源
    最近更新 更多