Repository navigation
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()"