色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

CSON使用實例:定義數據模型

麥辣雞腿堡 ? 來源:CSDN博客 ? 作者:NevermindZZT ? 2023-10-07 11:10 ? 次閱讀

CSON使用實例

聲明結構體:

/** 項目結構體 */
struct project
{
    int id;
    char *name;
};

/** 倉庫結構體 */
struct hub
{
    int id;
    char *user;
    struct project *cson;
};

定義數據模型:

對每一個需要使用cson的結構體,都需要定義相對應的數據模型

/** 項目結構體數據模型 */
CsonModel projectModel[] =
{
    CSON_MODEL_OBJ(struct project),
    CSON_MODEL_INT(struct project, id),
    CSON_MODEL_STRING(struct project, name),
};

/** 倉庫結構體數據模型 */
CsonModel hubModel[] =
{
    CSON_MODEL_OBJ(struct hub),
    CSON_MODEL_INT(struct hub, id),
    CSON_MODEL_STRING(struct hub, user),
    CSON_MODEL_STRUCT(struct hub, cson, projectModel, sizeof(projectModel)/sizeof(CsonModel))
};

使用CSON解析:

只需要定義好數據模型,就可以使用CSON讀json進行序列化和反序列化

void csonDemo(void)
{
    char *jsonDemo = "{"id": 1, "user": "Letter", "cson": {"id": 2, "name": "cson"}}";

    /** 解析json */
    struct hub *pHub = csonDecode(jsonDemo, hubModel, sizeof(hubModel)/sizeof(CsonModel));
    printf("hub: id: %d, user: %s, project id: %d, project name: %srn",
        pHub- >id, pHub- >user, pHub- >cson- >id, pHub- >cson- >name);

    /** 序列化對象 */
    char *formatJson = csonEncodeFormatted(pHub, hubModel, sizeof(hubModel)/sizeof(CsonModel));
    printf("format json: %srn", formatJson);

    /** 釋放結構體對象 */
    csonFree(pHub, hubModel, sizeof(hubModel)/sizeof(CsonModel));

    /** 釋放序列化生成的json字符串 */
    csonFreeJson(formatJson);
}

運行結果:

hub: id: 1, user: Letter, project id: 2, project name: cson
format json: {
        "id":   1,
        "user": "Letter",
        "cson": {
                "id":   2,
                "name": "cson"
        }
}

可以看到,無論是解析json,還是序列化結構體到json,在使用CSON的情況下,都只需要一行代碼就可以解決,同樣的操作,在使用原生cJSON的情況下,你可能需要多次判斷,解析元素。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    7134

    瀏覽量

    89398
  • C語言
    +關注

    關注

    180

    文章

    7614

    瀏覽量

    137433
  • 模型
    +關注

    關注

    1

    文章

    3298

    瀏覽量

    49071
  • 結構體
    +關注

    關注

    1

    文章

    130

    瀏覽量

    10867
收藏 人收藏

    評論

    相關推薦

    基于面向對象數據模型的信息管理系統

    探討了面向對象數據模型信息管理系統的結構設計和信息管理系統實現技術。系統設計采用面向對象數據模型數據庫結構采用對象-關系數據庫。結合一個典型的教務信息管理系
    發表于 02-21 11:35 ?14次下載

    什么是層次數據模型數據流量分析

    什么是層次數據模型 用層次結構表示實體類型及實體間聯系的數據模型稱為層次數據模型(hierarchical datamodel)。層次結構是樹結構,樹的結點是記錄類型,非根結點有且
    發表于 06-17 08:13 ?1579次閱讀

    什么是ActiveDirectory數據模型、數字數據網絡

    什么是ActiveDirectory數據模型 從 LDAP 數據模型演化而來的模型。該目錄用來保存對象,這些對象代表了由屬性描述的各種端口的實體。在架構中定義了可以存儲在目錄中
    發表于 06-17 08:13 ?1094次閱讀

    數據模型概念及類型劃分

      數據(data)是描述事物的符號記錄。模型(Model)是現實世界的抽象。數據模型(Data Model)是數據特征的抽象,是數據庫管理
    發表于 08-03 15:05 ?8114次閱讀

    概率XML數據模型的綜述

    首先介紹了概率XML數據管理技術的概念,特點和挑戰;其次綜述了概率XML數據和概率XML數據模型,各種模型的核心思想都來自于可能世界模型,通
    發表于 12-26 11:08 ?20次下載
    概率XML<b class='flag-5'>數據模型</b>的綜述

    共享系統數據模型

    傳統共享系統數據模型的建模方法在語義性質分析和語義行為描述方面存在不足,針對以上問題提出了一種基于Fibrations理論的共享系統數據模型。主要工作體現在兩個方面:首先,應用真值函子、保持真值
    發表于 11-17 14:46 ?8次下載
    共享系統<b class='flag-5'>數據模型</b>

    Cassandra數據模型設計指南

    本文通過一個簡單的實例詳細介紹了Cassandra數據建模的五個步驟。我們最近在Instaclustr發表了一篇有關在Cassandra中經常出現的數據建模錯誤的文章。這篇文章非常受歡迎,并促使我思考如何設計出高質量的Cassa
    發表于 11-23 10:47 ?2059次閱讀

    Google Dremel數據模型講解

    首先簡單介紹一下 Dremel 是什么,能解決什么問題。第二部分著重講 Dremel 的數據模型,即數據結構。第三部分將談一下在此數據結構上設計的算法。Dremel 的數據模型起源于分
    發表于 11-28 17:05 ?4353次閱讀
    Google Dremel<b class='flag-5'>數據模型</b>講解

    數據模型的概念和作用

    數據模型(DataModel)是現實世界數據特征的抽象,或者說是現實世界的數據模擬。數據庫中,用數據模型來抽象地表示現實世界的
    的頭像 發表于 02-28 15:55 ?1.6w次閱讀

    數據模型的三要素

    本視頻主要詳細介紹了數據模型的三要素,分別是數據結構、數據操作和數據約束。
    的頭像 發表于 02-28 15:57 ?2.3w次閱讀

    數據模型有哪些種類

    數據庫的類型是根據數據模型來劃分的,而任何一個DBMS也是根據數據模型有針對性地設計出來的,這就意味著必須把數據庫組織成符合DBMS規定的數據模型
    的頭像 發表于 02-28 16:00 ?2.9w次閱讀

    智能電網的數據模型標準

    數據模型標準可以在智能電網架構模型的信息層表示。將數據模型從通信協議和技術中解耦的概念,被越來越多地應用于電力系統相關的標準化工作中。通過引入的數據模型和通信服務之間的適配層[如IEC
    發表于 06-10 14:46 ?1433次閱讀

    詳談Python的數據模型和對象模型

    Python官方文檔說法是“Python數據模型”,大多數Python書籍作者說法是“Python對象模型”,它們是一個意思,表示“計算機編程語言中對象的屬性”。這句話有點抽象,只要知道對象是Python對數據的抽象,在Pyth
    的頭像 發表于 02-10 15:59 ?2588次閱讀
    詳談Python的<b class='flag-5'>數據模型</b>和對象<b class='flag-5'>模型</b>

    Modbus協議的數據模型和地址模型

    在使用Modbus協議的時候,經常會遇到諸如40001、30001,10001之類的地址,這些數字代表什么含義呢?這其實是Modbus協議的數據模型和地址模型
    發表于 04-07 09:28 ?3527次閱讀

    Matter的數據模型和開發

    在第一篇內容中,我們介紹了智能家居互聯標準 Matter會帶來什么好處。本文,我們來了解一下Matter的數據模型和開發。
    的頭像 發表于 12-01 10:18 ?1545次閱讀
    主站蜘蛛池模板: 日韩精品久久久久久久电影 | 欧美一区二区三区免费播放 | 星空无限传媒视频在线观看视频 | 日韩欧无码一区二区三区免费不卡 | 亚洲欧洲日产国码中学 | 99久久综合精品免费 | 99国产视频 | 夜夜国产亚洲视频香蕉 | 窝窝午夜色视频国产精品东北 | 中文国产在线观看 | 九九热在线观看视频 | 亚洲日本欧美产综合在线 | 挺进老师的紧窄小肉六电影完整版 | WWW夜片内射视频在观看视频 | 欧美特级午夜一区二区三区 | 日韩亚洲欧美中文高清 | 国产欧美一区二区精品久久久 | 97人视频国产在线观看 | 姉调无修版ova国语版 | 扒开女人下面使劲桶视频 | 动漫美女脱小内内露尿口 | 2020年国产精品午夜福利在线观看 | 国产精品亚洲第一区二区三区 | xart欧美一区在线播放 | A级超碰视频在线观看 | 日日碰狠狠躁久久躁77777 | CHINA末成年VIDEO学生 | 久久久无码精品亚洲欧美 | 亚洲国产第一 | 把内衣脱了把奶露出来 | 男人有噶坏 | 美女靠逼漫画 | 亚洲成人99 | 国产-第1页-浮力影院 | 国产电影午夜成年免费视频 | 秋霞网在线伦理免费 | 久久成人免费大片 | 胸大美女又黄的网站 | 好大好爽好深舒服死了 | 女仆乖H调教跪趴 | 日本久久中文字幕精品 |