📝 add more documentation

This commit is contained in:
Niels Lohmann 2020-07-24 14:35:52 +02:00
parent a84370c61f
commit d8d499ce9b
No known key found for this signature in database
GPG key ID: 7F3CEA63AE251B69
6 changed files with 13 additions and 9 deletions

View file

@ -64,7 +64,6 @@ binary | *size*: 4294967296..18446744073709551615 | byte string (8 by
If NaN or Infinity are stored inside a JSON number, they are serialized properly. This behavior differs from the normal JSON serialization which serializes NaN or Infinity to `null`. If NaN or Infinity are stored inside a JSON number, they are serialized properly. This behavior differs from the normal JSON serialization which serializes NaN or Infinity to `null`.
!!! info "Unused CBOR types" !!! info "Unused CBOR types"
The following CBOR types are not used in the conversion: The following CBOR types are not used in the conversion:
@ -77,13 +76,16 @@ binary | *size*: 4294967296..18446744073709551615 | byte string (8 by
- bignum (0xC2..0xC3) - bignum (0xC2..0xC3)
- decimal fraction (0xC4) - decimal fraction (0xC4)
- bigfloat (0xC5) - bigfloat (0xC5)
- tagged items (0xC6..0xD4, 0xD8..0xDB)
- expected conversions (0xD5..0xD7) - expected conversions (0xD5..0xD7)
- simple values (0xE0..0xF3, 0xF8) - simple values (0xE0..0xF3, 0xF8)
- undefined (0xF7) - undefined (0xF7)
- half-precision floats (0xF9) - half-precision floats (0xF9)
- break (0xFF) - break (0xFF)
!!! info "Tagged items"
Binary subtypes will be serialized as tagged items. See [binary values](../binary_values.md#cbor) for an example.
??? example ??? example
```cpp ```cpp
@ -150,7 +152,6 @@ Double-Precision Float | number_float | 0xFB
- bignum (0xC2..0xC3) - bignum (0xC2..0xC3)
- decimal fraction (0xC4) - decimal fraction (0xC4)
- bigfloat (0xC5) - bigfloat (0xC5)
- tagged items (0xC6..0xD4, 0xD8..0xDB)
- expected conversions (0xD5..0xD7) - expected conversions (0xD5..0xD7)
- simple values (0xE0..0xF3, 0xF8) - simple values (0xE0..0xF3, 0xF8)
- undefined (0xF7) - undefined (0xF7)
@ -159,6 +160,10 @@ Double-Precision Float | number_float | 0xFB
CBOR allows map keys of any type, whereas JSON only allows strings as keys in object values. Therefore, CBOR maps with keys other than UTF-8 strings are rejected. CBOR allows map keys of any type, whereas JSON only allows strings as keys in object values. Therefore, CBOR maps with keys other than UTF-8 strings are rejected.
!!! warning "Tagged items"
Tagged items will throw a parse error by default. However, they can be ignored by passing `cbor_tag_handler_t::ignore` to function `from_cbor`.
??? example ??? example
```cpp ```cpp

View file

@ -158,7 +158,7 @@ JSON does not have a binary type, and this library does not introduce a new type
### CBOR ### CBOR
[CBOR](binary_formats/cbor.md) supports binary values, but no subtypes. Any binary value will be serialized as byte strings. The library will choose the smallest representation using the length of the byte array. [CBOR](binary_formats/cbor.md) supports binary values, but no subtypes. Subtypes will be serialized as tags. Any binary value will be serialized as byte strings. The library will choose the smallest representation using the length of the byte array.
??? example ??? example

View file

@ -14,6 +14,7 @@ interface json::sax_t {
+ {abstract} bool number_float(number_float_t val, const string_t& s) + {abstract} bool number_float(number_float_t val, const string_t& s)
+ {abstract} bool string(string_t& val) + {abstract} bool string(string_t& val)
+ {abstract} bool binary(binary_t& val)
+ {abstract} bool start_object(std::size_t elements) + {abstract} bool start_object(std::size_t elements)
+ {abstract} bool end_object() + {abstract} bool end_object()
@ -41,6 +42,8 @@ bool number_float(number_float_t val, const string_t& s);
// called when a string is parsed; value is passed and can be safely moved away // called when a string is parsed; value is passed and can be safely moved away
bool string(string_t& val); bool string(string_t& val);
// called when a binary value is parsed; value is passed and can be safely moved away
bool binary(binary& val);
// called when an object or array begins or ends, resp. The number of elements is passed (or -1 if not known) // called when an object or array begins or ends, resp. The number of elements is passed (or -1 if not known)
bool start_object(std::size_t elements); bool start_object(std::size_t elements);

View file

@ -4,7 +4,7 @@
The class is licensed under the [MIT License](http://opensource.org/licenses/MIT): The class is licensed under the [MIT License](http://opensource.org/licenses/MIT):
Copyright © 2013-2019 [Niels Lohmann](http://nlohmann.me) Copyright © 2013-2020 [Niels Lohmann](http://nlohmann.me)
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

View file

@ -7036,7 +7036,6 @@ class basic_json
- bignum (0xC2..0xC3) - bignum (0xC2..0xC3)
- decimal fraction (0xC4) - decimal fraction (0xC4)
- bigfloat (0xC5) - bigfloat (0xC5)
- tagged items (0xC6..0xD4, 0xD8..0xDB)
- expected conversions (0xD5..0xD7) - expected conversions (0xD5..0xD7)
- simple values (0xE0..0xF3, 0xF8) - simple values (0xE0..0xF3, 0xF8)
- undefined (0xF7) - undefined (0xF7)
@ -7423,7 +7422,6 @@ class basic_json
- bignum (0xC2..0xC3) - bignum (0xC2..0xC3)
- decimal fraction (0xC4) - decimal fraction (0xC4)
- bigfloat (0xC5) - bigfloat (0xC5)
- tagged items (0xC6..0xD4, 0xD8..0xDB)
- expected conversions (0xD5..0xD7) - expected conversions (0xD5..0xD7)
- simple values (0xE0..0xF3, 0xF8) - simple values (0xE0..0xF3, 0xF8)
- undefined (0xF7) - undefined (0xF7)

View file

@ -23339,7 +23339,6 @@ class basic_json
- bignum (0xC2..0xC3) - bignum (0xC2..0xC3)
- decimal fraction (0xC4) - decimal fraction (0xC4)
- bigfloat (0xC5) - bigfloat (0xC5)
- tagged items (0xC6..0xD4, 0xD8..0xDB)
- expected conversions (0xD5..0xD7) - expected conversions (0xD5..0xD7)
- simple values (0xE0..0xF3, 0xF8) - simple values (0xE0..0xF3, 0xF8)
- undefined (0xF7) - undefined (0xF7)
@ -23726,7 +23725,6 @@ class basic_json
- bignum (0xC2..0xC3) - bignum (0xC2..0xC3)
- decimal fraction (0xC4) - decimal fraction (0xC4)
- bigfloat (0xC5) - bigfloat (0xC5)
- tagged items (0xC6..0xD4, 0xD8..0xDB)
- expected conversions (0xD5..0xD7) - expected conversions (0xD5..0xD7)
- simple values (0xE0..0xF3, 0xF8) - simple values (0xE0..0xF3, 0xF8)
- undefined (0xF7) - undefined (0xF7)