`
buluzhai
  • 浏览: 110182 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

c语言解析json数据

    博客分类:
  • MTK
阅读更多
我使用的是cJSON:http://sourceforge.net/projects/cjson/

先看json的数据结构
c中没有对象,所以json数据是采用链表存储的
typedef struct cJSON {
	struct cJSON *next,*prev;	// 数组 对象数据中用到
	struct cJSON *child;		// 数组 和对象中指向子数组对象或值

	int type;			// 元素的类型,如是对象还是数组

	char *valuestring;			// 如果是字符串
	int valueint;				// 如果是数值
	double valuedouble;			// 如果类型是cJSON_Number

	char *string;				// The item's name string, if this item is the child of, or is in the list of subitems of an object.
} cJSON;


比如你有一个json数据
{
    "name": "Jack (\"Bee\") Nimble", 
    "format": {
        "type":       "rect", 
        "width":      1920, 
        "height":     1080, 
        "interlace":  false, 
        "frame rate": 24
    }
}


那么你可以
1:讲字符串解析成json结构体。
cJSON *root = cJSON_Parse(my_json_string);

2:获取某个元素
cJSON *format = cJSON_GetObjectItem(root,"format");
int framerate = cJSON_GetObjectItem(format,"frame rate")->valueint;

3:讲json结构体转换成字符串
char *rendered=cJSON_Print(root);

4:删除
cJSON_Delete(root);

5:构建一个json结构体
cJSON *root,*fmt;
root=cJSON_CreateObject();	
cJSON_AddItemToObject(root, "name", cJSON_CreateString("Jack (\"Bee\") Nimble"));
cJSON_AddItemToObject(root, "format", fmt=cJSON_CreateObject());
cJSON_AddStringToObject(fmt,"type",		"rect");
cJSON_AddNumberToObject(fmt,"width",		1920);
cJSON_AddNumberToObject(fmt,"height",		1080);
cJSON_AddFalseToObject (fmt,"interlace");
cJSON_AddNumberToObject(fmt,"frame rate",	24);



分享到:
评论

相关推荐

    cJson c语言解析json数据

    在C语言环境中,处理JSON数据时,cJson提供了一个简单而高效的解决方案。它允许开发者轻松地将JSON字符串解析为C结构体,同时也支持将C结构体转换为JSON格式的字符串。 ### JSON基础 JSON(JavaScript Object ...

    cJSON库,C语言解析json数据的库

    然而,对于C语言这样的静态类型语言,处理JSON数据需要特定的库支持。cJSON库就是这样一个库,专为C语言设计,提供了方便、高效的JSON解析和生成功能。 **一、cJSON库的基本概念** 1. cJSON库介绍:cJSON是由David...

    c语言的json连续解析,主要姐姐粘包

    在本场景中,我们关注的是C语言处理JSON数据的连续解析,特别是针对“粘包”问题的解决方案。首先,我们需要理解什么是“粘包”现象。 “粘包”通常发生在网络通信中,当多个数据包连续发送并在接收端合并成一个...

    c语言json数据格式解析

    本篇文章将深入探讨如何在C语言中解析JSON数据格式。 1. JSON数据格式基础 JSON格式基于JavaScript语法,但不依赖JavaScript运行环境。其基本结构包括对象(键值对的集合,用花括号{}包围)和数组(有序元素序列,...

    c语言版本json源码

    标题“C语言版本JSON源码”指的是使用C语言编写的JSON库,这个库提供了解析JSON字符串到C结构体的函数,以及将C结构体转换为JSON字符串的功能。这样的库对于需要与服务器进行JSON数据交换的C应用程序来说是必不可少...

    json-c 一个用于c语言的json解析库,很强大

    `json-c`就是这样一个专门用于C语言的JSON解析库,它提供了对JSON数据的读取、创建、修改和序列化等功能,使得C程序员可以方便地与JSON格式进行交互。 `json-c`库的核心特性包括: 1. **解析和生成JSON**:`json-c...

    json用C语言解析包

    本篇文章将深入探讨如何使用C语言解析JSON数据。 在C语言中,没有内置的JSON解析库,但有许多开源库可以帮助我们处理JSON。其中一个常用的库是"cJSON",这个库提供了简单易用的API,用于解析和生成JSON数据。...

    基于C语言的json数据映射解析库.zip

    本资源提供了一个基于C语言的JSON数据映射解析库,它允许程序员在C程序中方便地处理JSON数据。 在C语言中,处理JSON数据通常涉及到以下几个关键知识点: 1. **字符串处理**:由于JSON主要以文本形式存在,因此理解...

    C语言的json解析数据

    这个库提供了简单易用的API,使得在C语言中处理JSON数据变得可能。cjson的主要目标是提供快速的解析和生成性能,同时保持较小的代码体积,适合嵌入式或者其他资源有限的环境。 在cjson库中,主要包含以下几个核心...

    基于C语言的json数据映射解析库

    【作品名称】:基于C语言的json数据映射解析库 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: CSON的模型映射借鉴了...

    C语言JSON解析

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于Web服务与客户端之间的数据传输。...通过理解和熟练运用CJSON库,可以极大地提升C语言应用在处理JSON数据时的效率和灵活性。

    C语言精简JSON解析程序,可用于单片机等资源稀缺硬件

    这个精简的C语言实现,通过解析JSON文本,将键值对转化为C语言中的结构体或字典,便于程序处理。 3. **精简实现** 项目仅有一百多行代码,这意味着它尽可能地减少了内存占用和计算开销,适合资源受限的硬件环境。...

    纯C语言json解析,很好用

    本压缩包提供的"纯C语言json解析"工具,即为一个C语言实现的JSON解析器,它允许开发者在C程序中高效、稳定地解析和生成JSON数据。 首先,让我们深入理解JSON的基本结构。JSON由键值对构成,键必须是字符串,用双...

    c语言json格式校验代码

    总的来说,这个C语言的JSON格式校验代码提供了一种实用的方法来验证JSON数据的格式。开发者可以将此代码集成到他们的项目中,以确保接收到的JSON数据符合标准,避免因数据格式错误导致的程序异常。理解并使用这个库...

    c语言实现json的创建及解析

    在C语言中实现JSON的创建和解析,可以帮助开发者在C环境中与JSON数据进行交互,这对于网络通信、数据存储和配置文件等场景尤其有用。 本项目提供了一套C语言实现的JSON库——CJson,它包含了`.C`源代码文件和`.h`...

    基于C语言的json数据映射解析库项目资源.zip

    基于C语言的json数据映射解析库项目资源

    C语言实现JSON的解码与编码

    解析JSON字符串的过程是将JSON文本转换为C语言的数据结构。这通常需要遍历输入的JSON字符串,识别各种数据类型,并构建相应的C结构体或数据数组。例如,对于一个JSON对象,可以创建一个结构体,包含一系列的键值对...

    C语言JSON格式数据解析库及测试代码

    `example`文件夹中的`simple.c`是测试代码,展示了如何使用jsmn库解析JSON数据。首先,它会包含`jsmn.h`,然后进行以下步骤: 1. 分配足够的令牌池,以容纳可能的JSON元素。 2. 调用`jsmn_init`初始化解析器。 3. ...

    C语言json字符串的生成与解析

    - 在配置文件处理中,JSON因其可读性强而被广泛采用,可以使用C语言解析和生成配置信息。 - 在数据序列化和反序列化场景,JSON作为一种跨平台的标准格式,方便数据在不同系统间交换。 总之,C语言处理JSON字符串...

Global site tag (gtag.js) - Google Analytics