以JSON格式打印出MongoDB文档

问题描述 投票:0回答:2

我正从我的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)


}
json swift mongodb mongokitten
2个回答
1
投票

MongoKitten附带一个扩展JSON模块,您可以导入:

import ExtendedJSON

您可以使用[Document]将文档数组(makeExtendedJSON())转换为Extended JSON:

myArrayOfDocuments.makeExtendedJSON()

这将返回一个Cheetah.Value。猎豹是OpenKittens JSON库。要获取JSON字符串,可以在serializedString()上使用Cheetah.Value方法。


总而言之,使用它将您的BSON文档数组转换为JSON字符串:

myArrayOfDocuments.makeExtendedJSON().serializedString()

0
投票

如果您的myTopics对象是一个字典,您可以将其转换为json,如下所示:

let dict = ["key1": "B", "key2": "A", "key3": "C"]
let jsonData = try JSONSerialization.data(withJSONObject: dict, options: .prettyPrinted)

否则你可以手动将myTopics对象转换为[String:String]字典,而不是像上面那样将它转换为json,但我不确定这是否是处理mongodb对象的方法。

© www.soinside.com 2019 - 2024. All rights reserved.