1

我有一个方法,它将返回一个[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 中解决这个问题?

4

1 回答 1

2

通过将所有值的类型分配给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())
}
于 2017-03-13T14:00:48.710 回答