1234567891011121314151617181920212223242526272829303132333435363738 |
- #include "json/json.h"
- #include <iostream>
- /**
- * \brief Parse a raw string into Value object using the CharReaderBuilder
- * class, or the legacy Reader class.
- * Example Usage:
- * $g++ readFromString.cpp -ljsoncpp -std=c++11 -o readFromString
- * $./readFromString
- * colin
- * 20
- */
- int main() {
- const std::string rawJson = R"({"Age": 20, "Name": "colin"})";
- const auto rawJsonLength = static_cast<int>(rawJson.length());
- constexpr bool shouldUseOldWay = false;
- JSONCPP_STRING err;
- Json::Value root;
- if (shouldUseOldWay) {
- Json::Reader reader;
- reader.parse(rawJson, root);
- } else {
- Json::CharReaderBuilder builder;
- const std::unique_ptr<Json::CharReader> reader(builder.newCharReader());
- if (!reader->parse(rawJson.c_str(), rawJson.c_str() + rawJsonLength, &root,
- &err)) {
- std::cout << "error" << std::endl;
- return EXIT_FAILURE;
- }
- }
- const std::string name = root["Name"].asString();
- const int age = root["Age"].asInt();
- std::cout << name << std::endl;
- std::cout << age << std::endl;
- return EXIT_SUCCESS;
- }
|