http://buluzhai.iteye.com/blog/845404
我使用的是cJSON:http://sourceforge.net/projects/cjson/

先看json的数据结构 
c中没有对象,所以json数据是采用链表存储的

C代码  
  1. typedef struct cJSON {
  2. struct cJSON *next,*prev;   // 数组 对象数据中用到
  3. struct cJSON *child;        // 数组 和对象中指向子数组对象或值
  4. int type;           // 元素的类型,如是对象还是数组
  5. char *valuestring;          // 如果是字符串
  6. int valueint;               // 如果是数值
  7. double valuedouble;         // 如果类型是cJSON_Number
  8. char *string;               // The item's name string, if this item is the child of, or is in the list of subitems of an object.
  9. } cJSON;

比如你有一个json数据

Javascript代码  
  1. {
  2. "name": "Jack (\"Bee\") Nimble",
  3. "format": {
  4. "type":       "rect",
  5. "width":      1920,
  6. "height":     1080,
  7. "interlace":  false,
  8. "frame rate": 24
  9. }
  10. }

那么你可以 
1:讲字符串解析成json结构体。

C代码  
  1. cJSON *root = cJSON_Parse(my_json_string);

2:获取某个元素

C代码  
  1. cJSON *format = cJSON_GetObjectItem(root,"format");
  2. int framerate = cJSON_GetObjectItem(format,"frame rate")->valueint;

3:讲json结构体转换成字符串

C代码  
  1. char *rendered=cJSON_Print(root);

4:删除

C代码  
  1. cJSON_Delete(root);

5:构建一个json结构体

C代码  
  1. cJSON *root,*fmt;
  2. root=cJSON_CreateObject();
  3. cJSON_AddItemToObject(root, "name", cJSON_CreateString("Jack (\"Bee\") Nimble"));
  4. cJSON_AddItemToObject(root, "format", fmt=cJSON_CreateObject());
  5. cJSON_AddStringToObject(fmt,"type",     "rect");
  6. cJSON_AddNumberToObject(fmt,"width",        1920);
  7. cJSON_AddNumberToObject(fmt,"height",       1080);
  8. cJSON_AddFalseToObject (fmt,"interlace");
  9. cJSON_AddNumberToObject(fmt,"frame rate",   24);

c语言解析json数据相关推荐

  1. JAVA 解析JSON数据

    JSON 是目前最流行的轻量级数据交换语言(没有之一).尽管他是javaScript的一个子集.但由于其是独立与语言的文本格式,它几乎可以被所有编程语言所支持. 以下是对java 语言中解析json数 ...

  2. c语言解析json报文源码,GitHub - faycheng/cJSON: cJson源码和源码分析

    cJSON官方文档翻译 项目预期目标 文档翻译 函数列表 项目架构 源码注释 解析流程 快速使用 ###版权说明 Copyright (c) 2009 Dave Gamble Permission i ...

  3. python自动解析json_Python语言解析JSON详解

    本文主要向大家介绍了Python语言解析JSON详解,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. JSON 函数使用 JSON 函数需要导入 json 库:import jso ...

  4. gson解析php,php,android_关于 Gson 解析JSON数据。。。,php,android - phpStudy

    关于 Gson 解析JSON数据... 1.首先,我是从服务器端传回来的JSON数据如下: {"info":"succeed","user_id&qu ...

  5. 【Python使用】Python解析JSON数据的基本方法/用MATLAB解析json格式数据

    一 JSON数据格式介绍 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. JSON建构于两种结构:json是Javascript中的对象和数组中的对象, ...

  6. Andorid中使用Gson和Fast-json解析库解析JSON数据---第三方库学习笔记(二)

    JSON介绍: JSON:JavaScript对象表示法 JSON是存储和交换文本信息的语法. 特点: JSON是轻量级的文本数据交换格式 JSON独立于语言和平台 JSON具有自我描述性,更易理解 ...

  7. Python爬虫笔记——解析json数据(以周杰伦歌单为例)及Headers

    一.Network Network能够记录浏览器的所有请求.我们最常用的是:ALL(查看全部)/XHR(仅查看XHR)/Doc(Document,第0个请求一般在这里),有时候也会看看:Img(仅查看 ...

  8. C/C++程序开发: cJSON的使用(创建与解析JSON数据)

    一.cJSON介绍 cJSON 是一个超轻巧,携带方便,单文件,可以作为 ANSI-C 标准的 JSON 解析器,是一个用C语言编写的简单好用的JSON解析器:它只包含一个C文件和一个头文件,可以非常 ...

  9. ajax写入json数据格式化,java ajax解析json数据格式化

    java ajax解析json数据格式化 [2021-02-01 23:35:58]  简介: 服务器 hadoop格式化HDFS出现错误解决办法 报错信息: host:java.net.Unknow ...

最新文章

  1. c语言解逻辑问题的一般步骤,C语言面试题---逻辑短路问题
  2. 平衡二叉查找树 AVL 的实现
  3. vue2.0+stylus实现星级评定组件,computed计算属性实现全星半星,动态改变星级,多种星星规格
  4. python中时间处理_Python中处理时间的几种方法小结
  5. H.264的CAVLC(编码.解码)过程详解
  6. python网络爬虫系列(七)——selenium的介绍 selenium定位获取标签对象并提取数据 selenium的其它使用方法
  7. LeetCode 1220. 统计元音字母序列的数目(DP)
  8. mysql锁场景_MySQL死锁系列-常见加锁场景分析
  9. 一年级abb式词语并造句_ABB式词语如何活学活用,家长都收藏了!
  10. CHROME 拖动安装插件报错CRX_HEADER_INVALID的解决办法
  11. mysql indexkey提取,MySQL元数据获取基础笔记day06
  12. Android 面(被)试(锤)现场还原~
  13. 教育大数据采集机制与关键技术研究
  14. VS2017离线安装过程及下载缓慢处理(项目打包部署)
  15. oracle+sql+groupby,oracle学习笔记2:SQL执行
  16. 使用ifconfig结合awk提取主机的IP地址方法
  17. Flutter 修改App Logo图标
  18. IBUFDS、IBUFGDS和OBUFDS
  19. 树的数据结构代码_如何以无代码方式学习树数据结构
  20. 两个处理IP好用的Python库ipaddr和netaddr

热门文章

  1. spring cloud config笔记
  2. 对VOC目标检测数据进行增强
  3. php time相差12小时_PHP服务器时间差8小时解决方案
  4. tomcat7 java_Tomcat7安装(jdk 1.7环境)
  5. 白领学python_大学生应该早早自学Python,Ps,Pr,office三件套,还是等到要用的时候再学?...
  6. git提交屏蔽某java类_git 删除某次指定的提交
  7. 关于python的全局变量和局部变量、以下描述错误的是_Python:全局变量与局部变量的问题...
  8. spark2.4.5源码编译成hadoop-2.6.0-cdh5.15.1
  9. genymotion局域网访问_请问一下genymotion如何连接到内网上一个网站
  10. HTML里的表格不能复制粘贴,表格之间无法复制粘贴怎么办_两个EXCEL表格为什么不能复制和粘贴-win7之家...