一体として回旋
が、これは、あなたが[文字列:任意]を使用することができます:) .makeNode()、限り内部がそうであるようにNodeRepresentable、のNSNumberベース、またはnsnullを - それと
import Node
enum NodeConversionError : LocalizedError {
case invalidValue(String,Any)
var errorDescription: String? {
switch self {
case .invalidValue(let key, let value): return "Value for \(key) is not NodeRepresentable - " + String(describing: type(of: value))
}
}
}
extension NSNumber : NodeRepresentable {
public func makeNode(context: Context = EmptyNode) throws -> Node {
return Node.number(.double(Double(self)))
}
}
extension NSString : NodeRepresentable {
public func makeNode(context: Context = EmptyNode) throws -> Node {
return Node.string(String(self))
}
}
extension KeyAccessible where Key == String, Value == Any {
public func makeNode(context: Context = EmptyNode) throws -> Node {
var mutable: [String : Node] = [:]
try allItems.forEach { key, value in
if let _ = value as? NSNull {
mutable[key] = Node.null
} else {
guard let nodeable = value as? NodeRepresentable else { throw NodeConversionError.invalidValue(key, value) }
mutable[key] = try nodeable.makeNode()
}
}
return .object(mutable)
}
public func converted<T: NodeInitializable>(to type: T.Type = T.self) throws -> T {
return try makeNode().converted()
}
}
return try JSON(node: data.makeNode())
nodeという名前の最初のパラメータを持つJSONという名前のメソッドはありません。 JSONがクラスの場合、最初のパラメータnodeを持つinitメソッドはありません。 – gnasher729
Easier:let data = ["name": "David"、 "state": "CA"] – gnasher729
JSONには、https://vapor.github.io/documentation/guide/jsonというinitメソッドがあります。 html#response – keegan3d