【问题标题】:Covert 3 levels nested json to Alamofire parameters将 3 级嵌套 json 隐藏到 Alamofire 参数
【发布时间】:2018-01-16 07:20:16
【问题描述】:

我有一个非常复杂的 json 需要像这样用 Alamofire 发送我的 API

{
  "usernme": "test",
  "roastData": {
    "temps": [
    {"timing": 1, "state":1, "temp": 100},
    {"timing": 2, "state":1, "temp": 101},
    ]
  }
}

为了发送它,需要将此json转换为类型为[String:AnyObject]。

应该变成

["usernme": "test",
 "roastData": [
    "temps": [
      ["timing": 1, "state":1, "temp": 100],
      ["timing": 2, "state":1, "temp": 101],
    ]
    "date": "someDateHere"
  ]
]

如何转换?

【问题讨论】:

    标签: ios json swift alamofire


    【解决方案1】:

    如果您有 JSON 字符串,您可以通过以下代码将其转换为字典:

    // jsonString contains your JSON.
    let data = jsonString.data(using: .utf8)
    do {
        let dictionary = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? [String: Any]
        // Use dictionary here
    } catch {
        print(error)
    }
    

    【讨论】:

    • 您的某些答案是正确的,但第一级内的对象仍然看起来像 JSON 类型,而不是 [String:Any]。它不会在服务器端读取
    • JSON 类型是什么意思?它采用 [String: Any] 的形式,可以与 Alamofire 完美配合。
    • 我的意思是你的函数的结果不能完全转换另一个对象内的对象。我的服务器 API 无法正确获取roastData
    • 您应该添加使用 Alamofire 发送请求的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多