//整個json字串由乙個document物件來管理
rapidjson::document document;
document.setobject();
//新增name:value對
const char *name = "name";
const char *value = "zhangdada";
document.addmember(rapidjson::stringref(name), rapidjson::stringref(value), document.getallocator());
//新增json 物件
rapidjson::value info_objects(rapidjson::kobjecttype);
std::string jsonobject = "json_object";
info_objects.addmember(rapidjson::stringref("class_room"), rapidjson::stringref("no.6110"), document.getallocator());
info_objects.addmember(rapidjson::stringref("teacher_name"), rapidjson::stringref("zhangsanfeng"), document.getallocator());
document.addmember(rapidjson::stringref(jsonobject.c_str()), info_objects, document.getallocator());
//新增json 陣列
rapidjson::value array_objects(rapidjson::karraytype);
for (int i = 0; i < 2; i++)
char *jsonarrayname = "jsonarrayname";
document.addmemory(rapidjson::stringref(jsonarrayname), array_objects, document.getallocator());
//將構造好的json轉化成c++字串的形式
rapidjson::stringbuffer buffer;
rapidjson::writerwriter(buffer);
document.accept(writer);
std::string json = std::string(buffer.getstring));
stringbuffer s;
writerwriter(s);
writer.startobject(); // between startobject()/endobject(),
writer.key("hello"); // output a key,
writer.string("world"); // follow by a value.
writer.key("t");
writer.bool(true);
writer.key("f");
writer.bool(false);
writer.key("n");
writer.null();
writer.key("i");
writer.uint(123);
writer.key("pi");
writer.double(3.1416);
writer.key("a");
writer.startarray(); // between startarray()/endarray(),
for (unsigned i = 0; i < 4; i++)
writer.uint(i); // all values are elements of the array.
writer.endarray();
writer.endobject();
// std::cout << s.getstring() << std::endl;
const char *buffer = "}";
document document;
document.parse(buffer);
if(document.hasparseerror())
if(!document.hasmember("code"))
int obj1 = document["code"].getint();
if(!document.hasmember("msg"))
char *msg = document["msg"].getstring();
rapidjson::value &obj2 = document["data"];
if(!obj2.isobject())
const char* json = "";
//1.建立json文件物件
document d;
document.parse(buffer);
//2.修改鍵值
value& p = d["project"];
p.setstring(rapidjson::stringref("raoidjson-new"));
value& s = d["stars"];
s.setint(s.getint() + 1);
//3.將json物件轉換成c++字串
stringbuffer buffer;
writerwriter(buffer);
d.accept(writer);
//4.列印輸出
// output
std::cout << buffer.getstring() << std::endl;
C 專案RapidJson的詳細用法總結
本文基於2018年1月最新倉庫 撰寫 倉庫 用法 將 include rapidjson 資料夾copy到工程內直接使用 android ndk開發會增大apk體積1.4m,當然,肯定比自己寫的要快 請見native lib.cpp檔案 std string json std string buff...
const,static,extern用法總結
const應用 一 對於基本宣告 const int r 100 標準const變數宣告加初始化,編譯器經過型別檢查後直接用100在編譯時替換。二 對於指標 1.int x 10 const int r x 指標指向的內容是常量,r指向的內容不能夠通過r改變,但如果是非const,內容可以通過自己改...
C 使用RapidJSON庫處理json檔案
win8系統,ide為visual studio 2013 匯入標頭檔案,設定標頭檔案的包含目錄,選擇專案 屬性。include include 檔案讀寫 include include include using namespace rapidjson using rapidjson docume...