【问题标题】:Is there anyway JSON(node: ) can be called with [String: Any] type in Vapor无论如何 JSON(node: ) 可以用 Vapor 中的 [String: Any] 类型调用吗
【发布时间】:2017-08-03 08:45:14
【问题描述】:

我有一个方法,它将返回一个[String: Any] 字典,如下所示,

  func getDetailDictionary() -> [String: Any] {
    // demo code
    let followers = [1, 2, 3, 4, 5]
    return [
      "name": "sample name",
      "followers": followers
    ]
  }

我需要将此对象转换为JSON,以便我可以将其作为ResponseRepresentable 对象发送回客户端。

我使用以下内容来准备 JSON 对象:

let jsonData = try JSON(node: getDetailDictionary())

但是这个给出错误,告诉这与任何可用的重载都不匹配。我不认为[String:Any] 类型没有在JSON(node: ) 方法实现中处理。有什么办法可以在 Vapor 中解决这个问题?

【问题讨论】:

  • @OlegGordiichuk 这个问题纯粹与服务器端 swift 框架-Vapor 有关。请再看一下描述,我做了一些小的更新。

标签: swift vapor server-side-swift


【解决方案1】:

我能够通过将所有值的类型分配给Node 来使此代码正常工作。如果您想在返回字典之前与字典中的数据进行交互,这可能不是您想要的,但我认为它会起作用。

func getDetailDictionary() -> Node {
    // demo code
    let followers: Node = [1, 2, 3, 4, 5]
    let dict: Node = [
        "name": "sample name",
        "followers": followers
    ]
    return dict
}

drop.get("test") { req in
    return JSON(getDetailDictionary())
}

【讨论】:

    猜你喜欢
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-02
    • 2021-10-19
    • 1970-01-01
    • 2020-02-04
    相关资源
    最近更新 更多