Merge pull request #868 from nlohmann/feature/issue867

📝 fixing documentation #867
This commit is contained in:
Niels Lohmann 2017-12-11 08:55:26 +01:00 committed by GitHub
commit 383743c6c0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 15 deletions

View file

@ -160,7 +160,7 @@ json empty_object_implicit = json({});
json empty_object_explicit = json::object(); json empty_object_explicit = json::object();
// a way to express an _array_ of key/value pairs [["currency", "USD"], ["value", 42.99]] // a way to express an _array_ of key/value pairs [["currency", "USD"], ["value", 42.99]]
json array_not_object = { json::array({"currency", "USD"}), json::array({"value", 42.99}) }; json array_not_object = json::array({ {"currency", "USD"}, {"value", 42.99} });
``` ```

View file

@ -227,7 +227,7 @@ class exception : public std::exception
/*! /*!
@brief exception indicating a parse error @brief exception indicating a parse error
This excpetion is thrown by the library when a parse error occurs. Parse errors This exception is thrown by the library when a parse error occurs. Parse errors
can occur during the deserialization of JSON text, CBOR, MessagePack, as well can occur during the deserialization of JSON text, CBOR, MessagePack, as well
as when using JSON Patch. as when using JSON Patch.
@ -243,7 +243,7 @@ json.exception.parse_error.102 | parse error at 14: missing or wrong low surroga
json.exception.parse_error.103 | parse error: code points above 0x10FFFF are invalid | Unicode supports code points up to 0x10FFFF. Code points above 0x10FFFF are invalid. json.exception.parse_error.103 | parse error: code points above 0x10FFFF are invalid | Unicode supports code points up to 0x10FFFF. Code points above 0x10FFFF are invalid.
json.exception.parse_error.104 | parse error: JSON patch must be an array of objects | [RFC 6902](https://tools.ietf.org/html/rfc6902) requires a JSON Patch document to be a JSON document that represents an array of objects. json.exception.parse_error.104 | parse error: JSON patch must be an array of objects | [RFC 6902](https://tools.ietf.org/html/rfc6902) requires a JSON Patch document to be a JSON document that represents an array of objects.
json.exception.parse_error.105 | parse error: operation must have string member 'op' | An operation of a JSON Patch document must contain exactly one "op" member, whose value indicates the operation to perform. Its value must be one of "add", "remove", "replace", "move", "copy", or "test"; other values are errors. json.exception.parse_error.105 | parse error: operation must have string member 'op' | An operation of a JSON Patch document must contain exactly one "op" member, whose value indicates the operation to perform. Its value must be one of "add", "remove", "replace", "move", "copy", or "test"; other values are errors.
json.exception.parse_error.106 | parse error: array index '01' must not begin with '0' | An array index in a JSON Pointer ([RFC 6901](https://tools.ietf.org/html/rfc6901)) may be `0` or any number wihtout a leading `0`. json.exception.parse_error.106 | parse error: array index '01' must not begin with '0' | An array index in a JSON Pointer ([RFC 6901](https://tools.ietf.org/html/rfc6901)) may be `0` or any number without a leading `0`.
json.exception.parse_error.107 | parse error: JSON pointer must be empty or begin with '/' - was: 'foo' | A JSON Pointer must be a Unicode string containing a sequence of zero or more reference tokens, each prefixed by a `/` character. json.exception.parse_error.107 | parse error: JSON pointer must be empty or begin with '/' - was: 'foo' | A JSON Pointer must be a Unicode string containing a sequence of zero or more reference tokens, each prefixed by a `/` character.
json.exception.parse_error.108 | parse error: escape character '~' must be followed with '0' or '1' | In a JSON Pointer, only `~0` and `~1` are valid escape sequences. json.exception.parse_error.108 | parse error: escape character '~' must be followed with '0' or '1' | In a JSON Pointer, only `~0` and `~1` are valid escape sequences.
json.exception.parse_error.109 | parse error: array index 'one' is not a number | A JSON Pointer array index must be a number. json.exception.parse_error.109 | parse error: array index 'one' is not a number | A JSON Pointer array index must be a number.
@ -3294,7 +3294,7 @@ class parser
} }
/*! /*!
@brief the acutal acceptor @brief the actual acceptor
@invariant 1. The last token is not yet processed. Therefore, the caller @invariant 1. The last token is not yet processed. Therefore, the caller
of this function must make sure a token has been read. of this function must make sure a token has been read.
@ -3646,12 +3646,12 @@ class iter_impl
public: public:
/// The std::iterator class template (used as a base class to provide typedefs) is deprecated in C++17. /// The std::iterator class template (used as a base class to provide typedefs) is deprecated in C++17.
/// The C++ Standard has never required user-defined iterators to derive from std::iterator. /// The C++ Standard has never required user-defined iterators to derive from std::iterator.
/// A user-defined iterator should provide publicly accessible typedefs named /// A user-defined iterator should provide publicly accessible typedefs named
/// iterator_category, value_type, difference_type, pointer, and reference. /// iterator_category, value_type, difference_type, pointer, and reference.
/// Note that value_type is required to be non-const, even for constant iterators. /// Note that value_type is required to be non-const, even for constant iterators.
using iterator_category = std::bidirectional_iterator_tag; using iterator_category = std::bidirectional_iterator_tag;
/// the type of the values when the iterator is dereferenced /// the type of the values when the iterator is dereferenced
using value_type = typename BasicJsonType::value_type; using value_type = typename BasicJsonType::value_type;
@ -4312,7 +4312,7 @@ class json_reverse_iterator : public std::reverse_iterator<Base>
{ {
public: public:
using difference_type = std::ptrdiff_t; using difference_type = std::ptrdiff_t;
/// shortcut to the reverse iterator adaptor /// shortcut to the reverse iterator adapter
using base_iterator = std::reverse_iterator<Base>; using base_iterator = std::reverse_iterator<Base>;
/// the reference type for the pointed-to element /// the reference type for the pointed-to element
using reference = typename Base::reference; using reference = typename Base::reference;
@ -8304,7 +8304,7 @@ class basic_json
@brief create a JSON value @brief create a JSON value
This is a "catch all" constructor for all compatible JSON types; that is, This is a "catch all" constructor for all compatible JSON types; that is,
types for which a `to_json()` method exsits. The constructor forwards the types for which a `to_json()` method exists. The constructor forwards the
parameter @a val to that method (to `json_serializer<U>::to_json` method parameter @a val to that method (to `json_serializer<U>::to_json` method
with `U = uncvref_t<CompatibleType>`, to be exact). with `U = uncvref_t<CompatibleType>`, to be exact).
@ -9027,7 +9027,7 @@ class basic_json
string | value_t::string string | value_t::string
number (integer) | value_t::number_integer number (integer) | value_t::number_integer
number (unsigned integer) | value_t::number_unsigned number (unsigned integer) | value_t::number_unsigned
number (foating-point) | value_t::number_float number (floating-point) | value_t::number_float
object | value_t::object object | value_t::object
array | value_t::array array | value_t::array
discarded | value_t::discarded discarded | value_t::discarded
@ -10366,7 +10366,7 @@ class basic_json
@return copy of the element at key @a key or @a default_value if @a key @return copy of the element at key @a key or @a default_value if @a key
is not found is not found
@throw type_error.306 if the JSON value is not an objec; in that cases, @throw type_error.306 if the JSON value is not an object; in that cases,
using `value()` with a key makes no sense. using `value()` with a key makes no sense.
@complexity Logarithmic in the size of the container. @complexity Logarithmic in the size of the container.

View file

@ -100,13 +100,20 @@ TEST_CASE("README", "[hide]")
{ {
// ways to express the empty array [] // ways to express the empty array []
json empty_array_implicit = {{}}; json empty_array_implicit = {{}};
CHECK(empty_array_implicit.is_array());
json empty_array_explicit = json::array(); json empty_array_explicit = json::array();
CHECK(empty_array_explicit.is_array());
// a way to express the empty object {} // a way to express the empty object {}
json empty_object_explicit = json::object(); json empty_object_explicit = json::object();
CHECK(empty_object_explicit.is_object());
// a way to express an _array_ of key/value pairs [["currency", "USD"], ["value", 42.99]] // a way to express an _array_ of key/value pairs [["currency", "USD"], ["value", 42.99]]
json array_not_object = { json::array({"currency", "USD"}), json::array({"value", 42.99}) }; json array_not_object = json::array({ {"currency", "USD"}, {"value", 42.99} });
CHECK(array_not_object.is_array());
CHECK(array_not_object.size() == 2);
CHECK(array_not_object[0].is_array());
CHECK(array_not_object[1].is_array());
} }
{ {