ed0dfc9c6f
Some checks failed
linux-mips-gcc / linux-gcc-mipsel (Debug) (push) Waiting to run
linux-mips-gcc / linux-gcc-mipsel (Release) (push) Waiting to run
linux-mips64-gcc / linux-gcc-mips64el (Debug) (push) Waiting to run
linux-mips64-gcc / linux-gcc-mips64el (Release) (push) Waiting to run
linux-riscv64-gcc / linux-gcc-riscv64 (Debug) (push) Waiting to run
linux-riscv64-gcc / linux-gcc-riscv64 (Release) (push) Waiting to run
linux-x64-gcc / linux-gcc (Debug) (push) Waiting to run
linux-x64-gcc / linux-gcc (Release) (push) Waiting to run
linux-x86-gcc / linux-gcc (Debug) (push) Waiting to run
linux-x86-gcc / linux-gcc (Release) (push) Waiting to run
linux-aarch64-cpu-gcc / linux-gcc-aarch64 (Debug) (push) Successful in 1m32s
linux-aarch64-cpu-gcc / linux-gcc-aarch64 (Release) (push) Failing after 9s
linux-arm-gcc / linux-gcc-arm (Debug) (push) Successful in 1m45s
linux-arm-gcc / linux-gcc-arm (Release) (push) Successful in 1m38s
linux-arm-gcc / linux-gcc-armhf (Debug) (push) Successful in 2m1s
linux-arm-gcc / linux-gcc-armhf (Release) (push) Has been cancelled
39 lines
1.1 KiB
C++
39 lines
1.1 KiB
C++
#include "json/json.h"
|
|
#include <iostream>
|
|
#include <memory>
|
|
/**
|
|
* \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;
|
|
}
|