用cJSON.h/cJSON.c写JSON

cJSON(C语言JSON)库(适用于嵌入式序列化和反序列化) cJSON(C语言JSON)库是一个用于在C语言中解析和生成JSON数据的轻量级开源库。它提供了简单而强大的API,使C语言程序能够轻松地处理JSON数据。轻量级:cJSON库非常小巧,因此它不会增加太多的内存开销或二进制文件大小,适用于嵌入式系统和资源受限的环境。易于使用:cJSON提供了一组简单的API函数,使用户能够轻松地解析和生成JSON数据。这些API包括创建JSON对象、数组、字符串、数字等,以及将JSON数据解析成C语言数据结构。跨平台。 阅读详情

1.例一

struct JsonTest
{
    int id;
    char cName[32];
    float fValue;
};

void testWriteJson()
{

    JsonTest jsonObject = {1, "Muten", 0.2f};
    cJSON *root, *object;
    char *result; //生成的结果
    int i;

    root = cJSON_CreateObject();
    object = cJSON_CreateObject();
    cJSON_AddNumberToObject(object, "id", jsonObject.id);
    cJSON_AddStringToObject(object, "name", jsonObject.cName);
    cJSON_AddNumberToObject(object, "value", jsonObject.fValue);

    cJSON_AddNumberToObject(root, "id", jsonObject.id);
    cJSON_AddStringToObject(root, "name", jsonObject.cName);
    cJSON_AddNumberToObject(root, "value", jsonObject.fValue);
    cJSON_AddItemToObject(root, "object", object);

    result = cJSON_Print(root);
    cJSON_Delete(root);
    printf("生成Json:\n%s\n", result);
}
int main(int argc, char **argv)
{

    testWriteJson();
}

2.例二

void TestJsonArray()
{

    //测试cJson 创建JsonArray数组
    JsonTest jsonObject = {1, "Muten", 0.2f};
    cJSON *root;
    char *result; //生成的结果
    const char *names[3] = {"zhangsan", "lisi", "wangwu"};

    root = cJSON_CreateObject();

    cJSON *JsonArray = cJSON_CreateArray();

    for (int i = 0; i < 3; i++)
    {

        cJSON *ArrayItem = cJSON_CreateObject();
        jsonObject.id = i;
        cJSON_AddNumberToObject(ArrayItem, "id", jsonObject.id);
        cJSON_AddStringToObject(ArrayItem, "name", jsonObject.cName);
        cJSON_AddNumberToObject(ArrayItem, "value", jsonObject.fValue);
        cJSON_AddItemToArray(JsonArray, ArrayItem);
    }

    cJSON_AddNumberToObject(root, "id", jsonObject.id);
    cJSON_AddStringToObject(root, "name", jsonObject.cName);
    cJSON_AddNumberToObject(root, "value", jsonObject.fValue);
    cJSON_AddItemToObject(root, "JsonArray", JsonArray);
    cJSON_AddItemToObject(root, "names", cJSON_CreateStringArray(names, 3));

    result = cJSON_Print(root);
    cJSON_Delete(root);
    printf("生成JsonArray:\n%s\n", result);
}
int main(int argc, char **argv)
{

    TestJsonArray();
}

cJSON详解及其C函数接口使用 目录 JSON JSON语法 JSON语法是JavaScript对象表示法语法的子集: JSON的三种语法: JSON两种结构: CJSON介绍 cJSON源码 cJSON数据结构与常用接口 数据结构定义 常用接口 cJSON_Parse cJSON_Delete cJSON_Print cJSON_Version cJSON_GetArrayItem 与cJSON_GetObjectItem()类似的接口: 类型判断接口 创建cJSON对象接口 添加cJSON对象到链 阅读详情

相关推荐

在Linux下使用cJSON解析JSON

[ {"eRANName":"eNB1", "eRANID":3002, "ctlPort":36412, "dataPort":2152}, {"eRANName":"eNB2", "eRANID":10000, "ctlPort":36412, "dataPort":2152}, ]

makunIT的博客 3411

Linux(程序设计):30---cJSON库(C语言操作JSON)

一、cJSON库概述 JSON语法介绍可以参阅:https://blog.csdn.net/qq_41453285/article/details/106699314 cJSON开发库是C语言提供的对JSON操作的API cJSON库的编译安装 下载: git clone https://github.com/DaveGamble/cJSON.git ...

董哥的黑板报 4041

C语言:cJSON库用法详解

一、JSON、cJSON简介 1. JSON 简介 JSON格式详解 2. cJSON简介 cJSON是一个使用C语言编写的JSON数据解析器,具有超轻便,可移植,单文件的特点,使用MIT开源协议。其中主要包括两个文件cjson.c和cjson.h。 cjson.h文件中包含了对于JSON格式的结构体定义以及一些操作JSON格式的功能函数,包括创建JSON、向JSON格式中添加数字,字符,布尔值等等、读取JSON格式、将JSON格式转化为字符串等。 cjson.c文件中就是功能函数的具体实现。 cJSO

MQ0522的博客 2万+

c语言-json开源库cJSON的使用

一、cJSON的介绍 cJSON是一个开源的JSON解析器,用于解析JSON数据。它是由纯C语言实现,因此跨平台性好,移植简单。下载地址:https://github.com/DaveGamble/cJSON.git https://gitee.com/du-yueqiang/cJSON?_from=gitee_search二、移植方法 cJSON只有一个cjson.c和cjson.h...

weixin_46158019的博客 2738

C语言:使用cJSON库构造JSON

一、构造简单的JSON格式 1. 数字 cJSON库函数: //在对象中添加数字 CJSON_PUBLIC(cJSON*) cJSON_AddNumberToObject(cJSON * const object, const char * const name, const double number); 2. 字符串 cJSON库函数: //在对象中添加字符串 CJSON_PUBLIC(cJSON*) cJSON_AddStringToObject(cJSON * const object, cons

MQ0522的博客 3875

CJSON库源码解析:cjson.c 和 cjson.h

cJSON是一个轻量级的JSON解析器,它能够被用来处理JSON数据,通过C语言进行实现。它主要由两个文件组成:cjson.c和cjson.h。cjson.c负责核心的解析和生成JSON字符串的功能,而cjson.h定义了相关的接口和数据结构。cJSON因其小巧、快速、可移植性强的特点,广泛应用于嵌入式系统、网络通信以及各种需要快速处理JSON数据的场景中。CJSON库通过结构体来表达JSON对象,每个JSON对象都可以是对象、数组、字符串、数值、布尔值或null。CJSON使用结构体cJSON。

weixin_42360733的博客 1525

【C语言之 CJson】学CJson看这一篇就够了

CJSON 是一个轻量级的、用于处理 JSON 数据的 C 语言库。它提供了简单而直观的 API,使得在 C 程序中处理 JSON 数据变得相对容易。在本文中,我们将介绍 CJSON 的基本使用,包括如何创建 JSON 对象、解析 JSON 字符串、访问 JSON 数据以及释放相关资源。CJSON 提供了一个简单而功能丰富的方式来处理 JSON 数据。通过创建 JSON 对象、数组,以及使用相应的函数来填充和访问数据,你可以在 C 语言中轻松地进行 JSON 操作。

m0_62599305的博客 2万+

Win11注册表没有MMC的解决方法

本文详细介绍了在Win11系统中解决注册表没有MMC项的问题的方法。通过创建并导入注册表修复文件,我们可以成功地在注册表中添加缺失的MMC项。在操作过程中,需要注意备份注册表、以管理员身份运行工具以及系统更新等事项。希望本文能够帮助到遇到类似问题的用户,提高系统管理的效率和便捷性。如果你还有其他关于Windows操作系统的问题或疑问,欢迎随时提问并寻求帮助。

nntxthml的博客 1553

cJSON使用详细教程 | 一个轻量级C语言JSON解析器

1. JSON与cJSON JSON —— 轻量级的数据格式 JSON 全称 JavaScript Object Notation,即 JS对象简谱,是一种轻量级的数据格式。 它采用完全独立于编程语言的文本格式来存储和表示数据,语法简洁、层次结构清晰,易于人阅读和编写,同时也易于机器解析和生成,有效的提升了网络传输效率。 JSON语法规则 JSON对象是一个无序的"名称/值"键值对的集合: 以"...

Mculover666的博客(嵌入式) 20万+

深入解析USB3.0一致性测试的关键技术与实践指南

本文深入解析了USB3.0一致性测试的核心技术与实践指南。文章阐述了测试如何确保设备在5Gbps高速传输下的信号完整性、电源管理合规性及协议兼容性,并提供了从测试系统搭建到完整流程执行的实战经验,帮助工程师有效应对高速信号、电源与兼容性三大核心挑战。

weixin_29164091的博客 282

Titans:谷歌新型神经记忆架构,突破 Transformer 长序列处理的瓶颈

Titans 是谷歌推出的新型神经网络架构,通过神经长期记忆模块突破 Transformer 在处理长序列数据时的瓶颈,支持并行计算,显著提升训练效率。

士多啤梨先生の博客 991

【cJSON | 使用教程】介绍 JSON 以及 cJSON 使用详细步骤

👉本文介绍了JSON数据,cJSON开源库,以及详细介绍cJSON创作JSON文本的步骤,cJOSN解析JSON文本的步骤。

wkd_007的博客 6304

scRNA-seq的fastq文件处理流程——持续更新

获得了一批新的scRNA-seq的fastq.gz文件,每个样本的数据形式为: 我打算使用10X cellranger处理fastq.gz文件,下载及安装方式在官网:https://support.10xgenomics.com/single-cell-gene-expression/software/downloads/2.0这个网址写了10X cellranger处理fastq.gz文件的命名规则https://support.10xgenomics.com/single-cell-gene-expr

watermel__的博客 3198

STM32—cJson库解析与构造JSON数据

JSON(JavaScriptObject Notation)是一种轻量级的数据交换格式。它基于JavaScript的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,有效的提升了网络传输效率。cJSON是一个超轻巧,方便,单文件,简单的可以作为ANSI-C标准的JSON解析器。由于c语言中,没有直接的字典,字符串数组等数据结构,所以要借助结构体定义,处理json。

qq_53242461的博客 6615

DDoS攻击--Syn_Ack/Ack_Flood等攻击防护详解(TCP)

前言 Syn_Ack/Ack_Flood攻击属于TCP攻击,在了解Syn_Ack/Ack_Flood攻击之前,可以先看看TCP攻击详解。 Syn_Ack Flood 攻击: syn_ack报文出现在连接建立的第2个报文,用来确认第一次握手的syn包。 当服务器收到syn_ack报文后会在系统里查询是否属于3次握手的范畴。如果属于则回复ack,并将连接设为连接状态。若没有查到相关信息,则回复...

一只IT小小鸟 1万+

SpringAI系列 - MCP篇(二) - MCP Server Boot Starter

此处需注意之前的。

罗小爬的技术宝书 1320

C/C++ 使用cjson库 操作Json格式文件(创建、插入、解析、修改、删除)

为什么要学习解析Json文件? 工作需要呗! 被迫无奈的程序员自学使用cJSON操作json文件,全都是项目的干货!

cpp_learner的博客 3万+

(3dnr)多帧视频图像去噪 (一)

视频图像去噪主要利用相邻帧间内容相似性,通过时域帧平均降低随机噪声。为避免运动物体产生"拖尾"现象,可采用运动自适应或运动补偿时域滤波方法。前者根据运动强度动态调整滤波系数,后者通过运动补偿使参考帧更接近当前帧。运动补偿方法虽能更好处理运动区域,但计算复杂度高且对快速运动场景效果有限。相比之下,运动自适应方法在实时视频处理中更具优势,能平衡去噪效果与硬件资源消耗。两种方法可根据场景动态切换以获得最佳去噪效果。

大熊 1870

全面详解C语言使用cJSON解析JSON字符

cJSON对象的实现采用了树形结构,每个对象是树的一个节点,每个节点由cJSON这个结构体组成,对象中的元素也由cJSON这个结构体组成。同一层的对象和元素是双向链表结构,由next和prev指针链接。不同层的对象或元素由child指针链接起来。type表示对象或元素类型,string表示对象或节点的名称。元素的值存储在valuestring, valueint和valuedouble中。cJS...

void*_的博客 1万+

【Unity】网络游戏实战(序章)MMORPG大型多人在线角色扮演 + 中国象棋联网对战

本系列会基于两种常见的网络游戏类型(MMORPG大型多人在线角色扮演和多人棋牌),从零开始实现网络游戏开发中的大多数环节。【杜绝代码炫技】本系列杜绝代码炫技,摈弃那些高深的设计模式,一切业务逻辑的实现代码追求浅显易懂,即便是网络编程菜鸟,也能循序渐进掌握本系列的核心要点。【授之鱼也授之渔】与一些开源库那样只授予源码不同,本系列还会基于各个技术要点展开详解,并结合切实的可直接运行的Demo,授之鱼更授之渔。

神码编程 1963

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

利用cJSON解析JSON格式

利用cJSON解析JSON格式,附案例

pjwshuai的博客 1万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Linux-C C语言使用cJSON开源库解析JSON数据

Linux-C C语言使用cJSON开源库解析JSON数据 一、简述 记--在C语言中使用cJSON开源库解析JSON数据。 例子1:读取简单的JSON数据 例子2:读取JSON数据文件 例子3:读取JSON对象嵌套数据 例子4:读取JSON数组数据 二、例子 cJSON第三方解...

Genven_Liang的博客 1万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

cJson

关于该结构体的几点说明: cJOSN 结构体是一个双向链表,并且可通过 指针访问下一层。 结构体成员 变量用于描述数据元素的类型(如果是键值对表示 值的类型),数据元素可以是字符串、整形、浮点型。 如果是整形值的话可通过 将值取出 如果是浮点型的话可通过 将值取出 如果是字符串类型的话可通过 将值取出 结构体成员 表示键值对中键值的名称。 2.2 数据的封装 在 cJSON.h 头文件中可以看到一些函数声明,通过调用这些创建函数就可以将 Json 支持的数据类型封装为 cJSON

- 1万+

cJSON详解

cJSON详解 konishi5202关注 0.5172019.03.04 13:01:01字数 1,908阅读 20,522 一、JSON概述 1.1 JSON介绍 JSON:JavaScript对象表示法(JavaScript Object Notation)。是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似C语音家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSO

qq_20312079的博客 7328

cJSON库用法详解

cJSON库用法详解 --- 介绍一些构造JSON时,经常用到的函数,使用以下函数,就可以完成大部分JSON格式的构造。//创建对象---常用//创建数组---常用//创建整型数组//创建双浮点型数组//在对象中添加null//在对象中添加true//在对象中添加false//在对象中添加数字//在对象中添加字符串//在对象中添加项目//在数组中添加项目//JSON数据结构转换为JSON字符串---有格式//JSON数据结构转换为JSON字符串---无格式//清除结构体。

6182

cJSON,c语言的JSON库!

Welcome to cJSON. cJSON的目标是成为您能够完成工作的“最愚蠢(最便捷)”的解析器。它是一个C文件和一个头文件。 JSON它类似于XML,但不含冗余。您可以使用它来移动数据、存储数据,或者只是表示程序的状态。 作为一个库,cJSON的存在可以带走尽可能多的跑腿工作(重复造轮子),但不会妨碍您的工作。作为实用主义的观点(即忽略事...

xfxuezhang.cn 2万+
上一篇: C++的异常处理
下一篇: SM国密学习
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值