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 に答える