|
◆ basic_json() [7/9]
template< template< typename U, typename V, typename... Args > class ObjectType = std::map, template< typename U, typename... Args > class ArrayType = std::vector, class StringType = std::string, class BooleanType = bool, class NumberIntegerType = std::int64_t, class NumberUnsignedType = std::uint64_t, class NumberFloatType = double, template< typename U > class AllocatorType = std::allocator, template< typename T, typename SFINAE= void > class JSONSerializer = adl_serializer>
- Parameters
-
[in,out] | i | stream to read a serialized JSON value from |
[in] | cb | a parser callback function of type parser_callback_t which is used to control the deserialization by filtering unwanted values (optional) |
- Complexity\n Linear in the length of the input. The parser is a predictive
- LL(1) parser. The complexity can be higher if the parser callback function cb has a super-linear complexity.
- Note
- A UTF-8 byte order mark is silently ignored.
- Deprecated:
- This constructor is deprecated and will be removed in version 3.0.0 to unify the interface of the library. Deserialization will be done by stream operators or by calling one of the
parse functions, e.g. parse(std::istream&, const parser_callback_t). That is, calls like json j(i); for an input stream i need to be replaced by json j = json::parse(i); . See the example below.
- Example\n The example below demonstrates constructing a JSON value from
- a
std::stringstream with and without callback function.
13 "Title": "View from 15th Floor",
15 "Url": "http://www.example.com/image/481989943",
20 "IDs": [116, 943, 234, 38793]
32 std::cout << std::setw(4) << j_complete << "\n\n";
56 std::cout << std::setw(4) << j_filtered << '\n';
static basic_json array(std::initializer_list< basic_json > init=std::initializer_list< basic_json >()) explicitly create an array from an initializer list
void clear() noexcept clears the contents
parse_event_t JSON callback events.
@ key the parser read a key of a value in an object
std::function< bool(int depth, parse_event_t event, basic_json &parsed)> parser_callback_t per-element parser callback type
a class to store JSON values
basic_json<> json default JSON class
Output (play with this example online):
{
"Image": {
"Animated": false,
"Height": 600,
"IDs": [
116,
943,
234,
38793
],
"Thumbnail": {
"Height": 125,
"Url": "http://www.example.com/image/481989943",
"Width": 100
},
"Title": "View from 15th Floor",
"Width": 800
}
}
{
"Image": {
"Animated": false,
"Height": 600,
"IDs": [
116,
943,
234,
38793
],
"Title": "View from 15th Floor",
"Width": 800
}
}
The example code above can be translated with g++ -std=c++11 -Isrc doc/examples/basic_json__istream.cpp -o basic_json__istream
- Since
- version 2.0.0, deprecated in version 2.0.3, to be removed in version 3.0.0
Definition at line 2396 of file json.hpp.
|