Skip to content

Basic usage

gchudnov edited this page Dec 21, 2014 · 6 revisions

Read JSON:

#include <string>
#include <iostream>
#include "cpp-json-qi/json.h"

using namespace jsonqi;

  std::string input("...")
  std::istringstream iss(input);
  json_value val;
  iss >> val;

Write JSON:

#include <string>
#include <iostream>
#include "cpp-json-qi/json.h"

using namespace jsonqi;

  json_value val;
  std::ostringstream oss;
  oss << json_value(val);

Manipulating JSON:

#include <string>
#include <iostream>
#include "cpp-json-qi/json.h"

using namespace jsonqi;

  std::string input("{\"menu\": {\n"
    "  \"id\": \"file\",\n"
    "  \"value\": \"File\",\n"
    "  \"popup\": {\n"
    "    \"menuitem\": [\n"
    "      {\"value\": \"New\", \"onclick\": \"CreateNewDoc()\"},\n"
    "      {\"value\": \"Open\", \"onclick\": \"OpenDoc()\"},\n"
    "      {\"value\": \"Close\", \"onclick\": \"CloseDoc()\"}\n"
    "    ]\n"
    "  }\n"
    "}}");

  std::istringstream iss(input);
  json_value doc;
  iss >> doc;

  json_object obj = to_object(doc);
  json_object menu = to_object(obj["menu"]);

  json_string menu_id = to_string(menu["id"]); // json_string -- std::string
  // menu_id == "file"

  json_string menu_value = to_string(menu["value"]);
  // menu_value == "File"

  json_object popup = to_object(menu["popup"]);

  json_array menuitem = to_array(popup["menuitem"]); // json_array -- std::vector<json_value>
  // menuitem.size() == 3

  json_object item1 = to_object(menuitem[0]);

  json_string item1_value = to_string(item1["value"]);
  // item1_value == "New"

  json_string item1_onclick = to_string(item1["onclick"]);
  // item1_onclick == "CreateNewDoc()"

Clone this wiki locally