MongoDB C++ Driver  mongocxx-3.3.2
All Classes Namespaces Functions Enumerations Enumerator Friends Pages
json.hpp
1 // Copyright 2015 MongoDB Inc.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #pragma once
16 
17 #include <string>
18 
19 #include <bsoncxx/document/value.hpp>
20 #include <bsoncxx/document/view.hpp>
21 #include <bsoncxx/stdx/optional.hpp>
22 
23 #include <bsoncxx/config/prelude.hpp>
24 
28 namespace bsoncxx {
29 BSONCXX_INLINE_NAMESPACE_BEGIN
30 
31 // Placing this variable between the `BSONCXX_INLINE_NAMESPACE_BEGIN` and the Doxygen documentation
32 // for `to_json` suppressed the macro name from being shown as part of the return type in the
33 // generated documentation pages.
34 extern const bool k_silence_doxygen;
35 
38 enum class ExtendedJsonMode : std::uint8_t {
39  k_legacy,
40  k_canonical,
41  k_relaxed,
42 };
43 
54 BSONCXX_API std::string BSONCXX_CALL to_json(document::view view,
56 
67 BSONCXX_API document::value BSONCXX_CALL from_json(stdx::string_view json);
68 
69 BSONCXX_INLINE_NAMESPACE_END
70 } // namespace bsoncxx
71 
72 #include <bsoncxx/config/postlude.hpp>
std::string to_json(document::view view, ExtendedJsonMode mode=ExtendedJsonMode::k_legacy)
Converts a BSON document to a JSON string, in extended format.
A read-only BSON document that owns its underlying buffer.
Definition: value.hpp:33
A read-only, non-owning view of a BSON document.
Definition: view.hpp:33
document::value from_json(stdx::string_view json)
Constructs a new document::value from the provided JSON text.
to produce Relaxed Extended JSON
to produce Legacy Extended JSON
to produce Canonical Extended JSON
ExtendedJsonMode
An enumeration of the types of Extended JSON that the to_json function accepts.
Definition: json.hpp:38
Top level namespace for MongoDB C++ BSON functionality.
Definition: element.hpp:24