2016-10-20 12 views
2

現在、mongoDBにJSONファイルを挿入しようとしています。私はすでに、これが過去にmongo :: BSONObjを使って解決されたことを見てきました...しかし、これはC++ 11用の新しいmongocxxドライバをリリースして以来、オプションではないようです。これは私がbsoncxxのsrcファイルで見つけたものです:JSONをMongocxxに挿入します。

BSONCXX_API document::value BSONCXX_CALL from_json(stdx::string_view json); 
/// Constructs a new document::value from the provided JSON text 
/// 
/// @param 'json' 
/// A string_view into a JSON document 
/// 
/// @returns A document::value if conversion worked. 
/// 
/// @throws bsoncxx::exception with error details if the conversion failed. 
/// 

私はstdx::string_viewに私のJSONファイルを入手する方法は?

ありがとうございます!

答えて

3

bsoncxx::stdx::string_viewは、std::stringから構成することができる。 (おそらくstd::ifstreamを介して)にファイルの内容(単一のJSONオブジェクトが含まれていると仮定します)をロードし、std::stringbsoncxx::from_jsonに渡します。 bsoncxx::from_jsonから返されるオブジェクトは、bsoncxx::document::valueです。これは、BSONドキュメントを含むリソース所有型です。

+0

あなたの答えをありがとう、うまくいった!一度に複数のオブジェクト(例えば、配列や物など)にロードする方法はありますか? – zerocool

+0

囲みエンティティはObjectでなければなりませんが、ネストされた配列や他のObjectなどを含むことができます。テキストファイルに順番に格納された複数のJSONドキュメントをbsoncxxの 'std :: vector' :: document :: value'では、そういうことはありませんが、実装するのは簡単です。 – acm

関連する問題