Swift3 从节点中提取字符串值

Swift3 从节点中提取字符串值,swift3,vapor,Swift3,Vapor,我正在尝试使用以下内容查询数据库: let db = drop.database?.driver as? MySQLDriver let query = "select \(fields) from \(table) where \(condition)" let result = try db.raw(query) let valueInfo = result[0, "field_name"]?.string 我得到以下节点对象作为结果: array([Node.Node.object([

我正在尝试使用以下内容查询数据库:

let db = drop.database?.driver as? MySQLDriver
let query = "select \(fields) from \(table) where \(condition)"
let result = try db.raw(query)
let valueInfo = result[0, "field_name"]?.string
我得到以下节点对象作为结果:

array([Node.Node.object(["field_name": Node.Node.string("value_info")])])

如何将
value\u info
转换为字符串变量?

您可以使用
PathIndexable
进入结果对象,然后
Polymorphic
将其转换为字符串

应该是这样的:

let db = drop.database?.driver as? MySQLDriver
let query = "select \(fields) from \(table) where \(condition)"
let result = try db.raw(query)
let valueInfo = result[0, "field_name"]?.string

不行<代码>值\u信息是查询的结果。比方说,如果我的查询类似于从dual中选择“test”作为字段名,我将得到
数组([Node.Node.object”([“field\u name”:Node.Node.string(“test”))])
。因此,您的解决方案无法使用。相反,
让valueInfo=result[0,“field_name”]?。string
起作用。