mirror of
https://github.com/nlohmann/json.git
synced 2025-11-24 11:54:34 +08:00
📝 added a note to ordered maps
The library does not preserve the insertion order of object keys. There are frequent requests to change the library in this aspect. The README and the contribution guidelines now contain links to containers that can be used to replace std::map to preserve the insertion order.
This commit is contained in:
@@ -876,6 +876,7 @@ The library is currently used in Apple macOS Sierra and iOS 10. I am not sure wh
|
||||
- The strings stored in the library are UTF-8 encoded. When using the default string type (`std::string`), note that its length/size functions return the number of stored bytes rather than the number of characters or glyphs.
|
||||
- The code can be compiled without C++ **runtime type identification** features; that is, you can use the `-fno-rtti` compiler flag.
|
||||
- **Exceptions** are used widly within the library. They can, however, be switched off with either using the compiler flag `-fno-exceptions` or by defining the symbol `JSON_NOEXCEPTION`. In this case, exceptions are replaced by an `abort()` call.
|
||||
- By default, the library does not preserve the **insertion order of object elements**. This is standards-compliant, as the [JSON standard](https://tools.ietf.org/html/rfc7159.html) defines objects as "an unordered collection of zero or more name/value pairs". If you do want to preserve the insertion order, you can specialize the object type with containers like [`tsl::ordered_map`](https://github.com/Tessil/ordered-map) or [`nlohmann::fifo_map`](https://github.com/nlohmann/fifo_map).
|
||||
|
||||
|
||||
## Execute unit tests
|
||||
|
||||
Reference in New Issue
Block a user