将 3 级嵌套 json 隐藏到 Alamofire 参数

Posted

技术标签:

【中文标题】将 3 级嵌套 json 隐藏到 Alamofire 参数【英文标题】:Covert 3 levels nested json to Alamofire parameters 【发布时间】: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"
  ]
]

如何转换?

【问题讨论】:

【参考方案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 发送请求的代码。

以上是关于将 3 级嵌套 json 隐藏到 Alamofire 参数的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 将 4 级嵌套 JSON 文件转换为 1 级嵌套

将 json 格式数据加载到 google bigquery 性能问题

如果我有 3 个嵌套数据,如何将 JSON 数据添加到我的数据表中?

嵌套字典到 MultiIndex pandas DataFrame(3 级)

将嵌套的 Json 发送到 Symfony 表单

如何在extjs的列级获取嵌套的json数据