我有一个方法,它会返回一个QueryVM
字典,如下所示
[String: Any]
我需要将此对象转换为 func getDetailDictionary() -> [String: Any] {
// demo code
let followers = [1, 2, 3, 4, 5]
return [
"name": "sample name",
"followers": followers
]
}
,以便我可以将其作为JSON
对象发送回客户端。
我使用以下方法准备JSON对象:
ResponseRepresentable
但这给出了错误,告诉它不匹配任何可用的重载。我不认为let jsonData = try JSON(node: getDetailDictionary())
方法实现中没有处理[String:Any]
类型。我们有什么方法可以在Vapor中解决这个问题吗?
答案 0 :(得分: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())
}