Merge pull request #1765 from crazyjul/fix/items-with-alt-string

Allow items() to be used with custom string
This commit is contained in:
Niels Lohmann 2019-10-05 22:11:14 +02:00 committed by GitHub
commit d187488e0d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 54 additions and 8 deletions

View file

@ -154,6 +154,11 @@ class alt_string
friend bool ::operator<(const char*, const alt_string&);
};
void int_to_string( alt_string& target, int value )
{
target = std::to_string(value).c_str();
}
using alt_json = nlohmann::basic_json <
std::map,
std::vector,
@ -232,6 +237,35 @@ TEST_CASE("alternative string type")
CHECK(dump == R"({"foo":"bar"})");
}
SECTION("items")
{
auto doc = alt_json::parse("{\"foo\": \"bar\"}");
for ( auto item : doc.items() )
{
CHECK( item.key() == "foo" );
CHECK( item.value() == "bar" );
}
auto doc_array = alt_json::parse("[\"foo\", \"bar\"]");
for ( auto item : doc_array.items() )
{
if (item.key() == "0" )
{
CHECK( item.value() == "foo" );
}
else if (item.key() == "1" )
{
CHECK( item.value() == "bar" );
}
else
{
CHECK( false );
}
}
}
SECTION("equality")
{
alt_json doc;