// __ _____ _____ _____// __| | __| | | | JSON for Modern C++ (supporting code)// | | |__ | | | | | | version 3.12.0// |_____|_____|_____|_|___| https://github.com/nlohmann/json//// SPDX-FileCopyrightText: 2013-2025 Niels Lohmann <https://nlohmann.me>// SPDX-License-Identifier: MIT#include "doctest_compatibility.h"#include <nlohmann/json.hpp>using nlohmann::json;using nlohmann::ordered_json;TEST_CASE("ordered_json"){json j;ordered_json oj;j["element3"] = 3;j["element1"] = 1;j["element2"] = 2;oj["element3"] = 3;oj["element1"] = 1;oj["element2"] = 2;CHECK(j.dump() == "{\"element1\":1,\"element2\":2,\"element3\":3}");CHECK(oj.dump() == "{\"element3\":3,\"element1\":1,\"element2\":2}");CHECK(j == json(oj));CHECK(ordered_json(json(oj)) == ordered_json(j));j.erase("element1");oj.erase("element1");CHECK(j.dump() == "{\"element2\":2,\"element3\":3}");CHECK(oj.dump() == "{\"element3\":3,\"element2\":2}");// remove again and nothing changesj.erase("element1");oj.erase("element1");CHECK(j.dump() == "{\"element2\":2,\"element3\":3}");CHECK(oj.dump() == "{\"element3\":3,\"element2\":2}");// There are no dup keys cause constructor calls emplace...json const multi {{"z", 1}, {"m", 2}, {"m", 3}, {"y", 4}, {"m", 5}};CHECK(multi.size() == 3);CHECK(multi.dump() == "{\"m\":2,\"y\":4,\"z\":1}");ordered_json multi_ordered {{"z", 1}, {"m", 2}, {"m", 3}, {"y", 4}, {"m", 5}};CHECK(multi_ordered.size() == 3);CHECK(multi_ordered.dump() == "{\"z\":1,\"m\":2,\"y\":4}");CHECK(multi_ordered.erase("m") == 1);CHECK(multi_ordered.dump() == "{\"z\":1,\"y\":4}");// Ranged insert test.// It seems that values shouldn't be overwritten. Only new values are addedjson j1 {{"c", 1}, {"b", 2}, {"a", 3}};const json j2 {{"c", 77}, {"d", 42}, {"a", 4}};j1.insert( j2.cbegin(), j2.cend() );CHECK(j1.size() == 4);CHECK(j1.dump() == "{\"a\":3,\"b\":2,\"c\":1,\"d\":42}");ordered_json oj1 {{"c", 1}, {"b", 2}, {"a", 3}};const ordered_json oj2 {{"c", 77}, {"d", 42}, {"a", 4}};oj1.insert( oj2.cbegin(), oj2.cend() );CHECK(oj1.size() == 4);CHECK(oj1.dump() == "{\"c\":1,\"b\":2,\"a\":3,\"d\":42}");}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。