Есть ли в любом случае JSON(node:) может быть вызван с типом [String: Any] в Vapor
У меня есть метод, который будет возвращать [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?
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())
}