簡體   English   中英

以JSON格式打印出MongoDB文檔

[英]Printing out MongoDB Documents in JSON Format

我正在從mongoDB數據庫中檢索文檔,但是我需要以JSON格式將其打印出來。 正如MongoKitten文檔所建議的那樣,我將所有相關信息存儲在一個數組中。 我想打印出數組中每個元素的全部內容,記住MongoDB中的文檔。 我的代碼如下:

import Foundation
import MongoKitten

let myDatabase = try MongoKitten.Database("mongodb://taylor:starwars1@ds129374.mlab.com: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

您可以使用makeExtendedJSON()將文檔數組( [Document] )轉換為Extended JSON:

myArrayOfDocuments.makeExtendedJSON()

這將返回一個Cheetah.Value 獵豹是OpenKittens JSON庫。 要獲取JSON字符串,可以在Cheetah.Value上使用serializedString()方法。


總結起來,使用它可以將您的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對象的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM