c++jsoncpp

JsonCpp problem with sorting output json - case / alphabetical problem


I have an issue with JsonCpp library in C++ and sorting of keys after the json is produced. I found that JsonCpp is ignoring alphabetical order if there is Lowercase and Uppercase difference. It always favors Uppercase first and then alphabetical order.

Lets say we have this code to produce

Json::Value aJsonResult(Json::objectValue);

aJsonResult["ShuttersOpen"] = "test";
aJsonResult["ShutterType"] = "test";
aJsonResult["ShutterWidth"] = "test";

Json::StreamWriterBuilder aBuilder;
aBuilder["indentation"] = "";
return Json::writeString(aBuilder, aJsonResult).c_str();

But this produces output below, notice how ShuttersOpen key is last, even though its not correct.

{
    "ShutterType": "test",
    "ShutterWidth": "test",
    "ShuttersOpen": "test"
}

Any ideas how to fix this, I could not find any documentation on the official site


Solution

  • In lexicographical order, capital letters precede lowercase letters. "Z" < "a".