This code is from the JsonCpp project, which can be found at the following:
https://github.com/open-source-parsers/jsoncpp.

The code is released under the MIT license, as found in that project's
LICENSE file (https://github.com/open-source-parsers/jsoncpp/blob/master/LICENSE).

To generate the source code included here, clone the project from the project's
GitHub repository, and from the command line, run the "amalgamate.py" Python
script. This will generate the source files in the "dist" directory. Copy
json.h and jsoncpp.cpp, overwriting the existing files in this project.