Blame view

3rdparty/jsoncpp-1.9.5/example/readFromString/readFromString.cpp 1.09 KB
09c2d08c   Hu Chunming   arm交付版
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
  #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;
  }