<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          JsonReflect跨平臺 JSON 序列化與反序列化庫

          聯(lián)合創(chuàng)作 · 2023-09-21 20:03

          JsonReflect介紹

          JsonReflect是基于C++11實(shí)現(xiàn)跨平臺JSON序列化與反序列化庫。支持將對象序列化為JSON字符串或者將JSON字符串反序列化的對象。作者利用宏與C++11的typeid運(yùn)算符實(shí)現(xiàn)一種動態(tài)反射機(jī)制,大大簡化了序列化與反序列化工作。

          安裝方法

          1、下載源碼

          git clone https://gitee.com/xungen/jsonreflect.git

          2、在源碼目錄下執(zhí)行make命令編譯輸出靜態(tài)庫文件libjson.a

          3、在源碼目錄下執(zhí)行make test命令可以查看JsonReflect庫測試結(jié)果

          4、源碼目前下有一個名為test.cpp的示例代碼,你可以參考示例代碼的使用方法,示例代碼內(nèi)容如下:

          #include "json.h"
          
          JsonEntity(Item)
          {
          public:
              //定義名為ival的int類型成員
              rint(ival);
              //定義名為bval的bool類型成員
              rbool(bval);
              //定義名為sval的string類型成員
              rstring(sval);
          };
          
          JsonEntity(Entity)
          {
          public:
              //定義名為ival的int類型成員
              rint(ival);
              //定義名為bval的bool類型成員
              rbool(bval);
              //定義名為sval的string類型成員
              rstring(sval);
              //定義名為list的vector<Item>類型成員
              rarray(Item, list);
          };
          
          int main(int argc, char** argv)
          {
              Entity obj;
              Entity tmp;
              sp<Item> item;
              
              obj.ival = 0;
              obj.bval = false;
              obj.sval = "zero";
          
              item = obj.list.add();
              item->ival = 1;
              item->bval = true;
              item->sval = "one";
          
              item = obj.list.add();
              item->ival = 2;
              item->bval = true;
              item->sval = "two";
          
              item = obj.list.add();
              item->ival = 3;
              item->bval = true;
              item->sval = "three";
          
              //對象序列化為JSON字符串
              cout << obj.toString() << endl << endl;
          
              cout << endl;
          
              //JSON字符串反序列化為對象
              tmp.fromString(obj.toString());
          
              cout << tmp.toString() << endl << endl;
          
              return 0;
          }
          瀏覽 23
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩在线小电影 | 精品91| 免费干屄视频 | 99热免费在线观看 | 奇米888四色成人影视色区 |