# nlohmann::ordered_json ``` using ordered_json = basic_json; ``` This type preserves the insertion order of object keys. ## Iterator invalidation The type is based on [`ordered_map`](https://json.nlohmann.me/api/ordered_map/index.md) which in turn uses a `std::vector` to store object elements. Therefore, adding object elements can yield a reallocation in which case all iterators (including the [`end()`](https://json.nlohmann.me/api/basic_json/end/index.md) iterator) and all references to the elements are invalidated. Also, any iterator or reference after the insertion point will point to the same index, which is now a different value. ## Examples Example The example below demonstrates how `ordered_json` preserves the insertion order of object keys. ``` #include #include using ordered_json = nlohmann::ordered_json; int main() { ordered_json j; j["one"] = 1; j["two"] = 2; j["three"] = 3; std::cout << j.dump(2) << '\n'; } ``` Output: ``` { "one": 1, "two": 2, "three": 3 } ``` ## See also - [ordered_map](https://json.nlohmann.me/api/ordered_map/index.md) - [Object Order](https://json.nlohmann.me/features/object_order/index.md) ## Version history Since version 3.9.0.