我正从我的mongoDB数据库中检索文档,但我需要以JSON格式打印出来。我将所有相关信息存储在一个数组中,如MongoKitten文档所示。我想打印出数组中每个元素的全部内容,记住来自MongoDB的文档。我的代码如下:
import Foundation
import MongoKitten
let myDatabase = try MongoKitten.Database("mongodb://taylor:[email protected]:29374/taylorswiftengine")
let myCollection = myDatabase["my_collection"]
Request.addHandler(forMethod: "GET", withRoute: "/:resource/:id1")
{
(routeParams:RouteParams) in
let myTopics = try! myCollection.find("topic" == "\(routeParams["id1"]!)")
let allTopics = Array(myTopics)
}
MongoKitten附带一个扩展JSON模块,您可以导入:
import ExtendedJSON
您可以使用[Document]
将文档数组(makeExtendedJSON()
)转换为Extended JSON:
myArrayOfDocuments.makeExtendedJSON()
这将返回一个Cheetah.Value
。猎豹是OpenKittens JSON库。要获取JSON字符串,可以在serializedString()
上使用Cheetah.Value
方法。
总而言之,使用它将您的BSON文档数组转换为JSON字符串:
myArrayOfDocuments.makeExtendedJSON().serializedString()
如果您的myTopics对象是一个字典,您可以将其转换为json,如下所示:
let dict = ["key1": "B", "key2": "A", "key3": "C"]
let jsonData = try JSONSerialization.data(withJSONObject: dict, options: .prettyPrinted)
否则你可以手动将myTopics对象转换为[String:String]
字典,而不是像上面那样将它转换为json,但我不确定这是否是处理mongodb对象的方法。