#include <stdio.h>
#include <stdlib.h>
#include "cJSON.h"void printJson(cJSON * root)//以递归的方式打印json的最内层键值对
{for(int i=0; i<cJSON_GetArraySize(root); i++)   //遍历最外层json键值对
    {cJSON * item = cJSON_GetArrayItem(root, i);        if(cJSON_Object == item->type)      //如果对应键的值仍为cJSON_Object就递归调用printJson
            printJson(item);else                                //值不为json对象就直接打印出键和值
        {printf("%s->", item->string);printf("%s\n", cJSON_Print(item));}}
}int main()
{char * jsonStr = "{\"semantic\":{\"slots\":{\"name\":\"张三\"}}, \"rc\":0, \"operation\":\"CALL\", \"service\":\"telephone\", \"text\":\"打电话给张三\"}";cJSON * root = NULL;cJSON * item = NULL;//cjson对象
root = cJSON_Parse(jsonStr);     if (!root) {printf("Error before: [%s]\n",cJSON_GetErrorPtr());}else{printf("%s\n", "有格式的方式打印Json:");           printf("%s\n\n", cJSON_Print(root));printf("%s\n", "无格式方式打印json:");printf("%s\n\n", cJSON_PrintUnformatted(root));printf("%s\n", "一步一步的获取name 键值对:");printf("%s\n", "获取semantic下的cjson对象:");item = cJSON_GetObjectItem(root, "semantic");//
        printf("%s\n", cJSON_Print(item));printf("%s\n", "获取slots下的cjson对象");item = cJSON_GetObjectItem(item, "slots");printf("%s\n", cJSON_Print(item));printf("%s\n", "获取name下的cjson对象");item = cJSON_GetObjectItem(item, "name");printf("%s\n", cJSON_Print(item));printf("%s:", item->string);   //看一下cjson对象的结构体中这两个成员的意思printf("%s\n", item->valuestring);printf("\n%s\n", "打印json所有最内层键值对:");printJson(root);}return 0;
}

转载于:https://www.cnblogs.com/liyubo/p/9091155.html

CJSON parse.c相关推荐

  1. ESP32在线语音识别 词法解析

    文章目录 在线语音识别的优势 一,语音识别流程图 二,录音 三,词法分析 在线语音识别的优势 在线语音识别结合语义分析,具有识别精准,灵活性高的特点,但是,其处理速度不如离线识别. 一,语音识别流程图 ...

  2. STM32使用串口空闲中断接收不定长数据帧-USART_IT_IDLE使用(不使用DMA方式)

    STM32使用串口空闲中断接收不定长数据帧-USART_IT_IDLE使用(不使用DMA方式) 前言 串口空闲中断介绍 清中断方法 串口中断处理函数 串口中断用到的全局变量定义 串口初始化(使能接收中 ...

  3. 基于全志D1-H哪吒让LVGL8带的Music-Demo音乐响起来

    LVGL8 自带的有一个音乐播放器的Demo,效果不错,充分展示了LVGL8的弹性网格布局,动画等效果,来学习GUI是非常不错的,只是这个Demo并不能真正的播放音乐,但是已经把音乐播放的逻辑都给实现 ...

  4. 网易云VIP音乐NCM文件转MP3,C语言版本

    前言 网易云的Vip音乐下载下来,格式不是mp3/flac这种通用的音乐格式,而是经过加密的ncm文件.只有用网易云的音乐App才能够打开.于是想到可不可以把.ncm文件转换成mp3或者flac文件, ...

  5. cJSON使用教程(树外构建 out of tree build 概念)(组包概念)

    JSON基础:包括组包的概念等 Github:DaveGamble/cJSON https://github.com/DaveGamble/cJSON 文章目录 Github:DaveGamble/c ...

  6. cjson使用_LiteOS云端对接教程01-cJSON组件使用教程

    1. JSON与cJSON JSON -- 轻量级的数据格式 JSON 全称 JavaScript Object Notation,即 JS对象简谱,是一种轻量级的数据格式. 它采用完全独立于编程语言 ...

  7. DSP学习 -- cJSON使用教程

    如需转载请注明出处 https://juyou.blog.csdn.net/article/details/107870229 JSON 需要简单的了解一下.谁知道啥时候用上呢~ 一.JSON简介 参 ...

  8. JSON数据格式解析库(cJSON、Jansson)的使用在STM32上移植和使用

    json | json-c使用入门 这篇讲的也不错,抽空看下(网络传输json数据) https://www.bilibili.com/video/av669454528?p=3&spm_id ...

  9. c语言组json包,json格式解析和libjson的用法介绍(关于cjson的使用方法)

    在阅读本文之前,请先阅读下<Rss Reader实例开发之系统设计>一文. Rss Reader实例开发中,进行网络数据交换时主要使用到了两种数据格式:JSON与XML.本文主要介绍JSO ...

最新文章

  1. max_semi_space_size 设置值与实际值不一致的原因分析
  2. WebAssembly:面向Web的通用二进制和文本格式
  3. asp.net如何在用户关闭浏览器时执行Session_End方法
  4. 搭建IIS并配置网站之旅
  5. C# 获取可执行文件路径的上上级目录的方法
  6. 如何将前端数据保存到文件
  7. Springboot(十):邮件服务
  8. python抓取页面数据实例
  9. Git 常用命令总结,掌握这些,轻松驾驭版本管理
  10. oracleXE简易版---使用基础
  11. 整合DZ .net论坛与.net整合。
  12. C++基础知识点(3)
  13. [Shader2D]浮雕效果
  14. Linux学习_系统文件IO
  15. 基于 React hooks + Typescript + Cesium 实现泛光尾迹线
  16. 超快自旋电子学为电子信息新材料开辟了道路
  17. Word技巧之:将PPT框图以可编辑形式插入Word文档
  18. VLAN间路由的配置
  19. 1、使用类与接口的知识完成如下要求:(1)定义一个接口CanFly,描述会飞的方法public void fly();(2)分别定义类飞机和鸟,实现CanFly接口。(3)定义一个测试类,测试飞
  20. nacos项目启动报错:Connection refused: no further information

热门文章

  1. IDEA Properties 文件乱码
  2. 重做 oracle_Oracle数据库基本知识(1)-数据库(1)
  3. python 发邮件 timeout_python3 发送邮件 出现的问题(新手)
  4. python 逐行读取文件_Python fileinput模块:逐行读取多个文件
  5. android去掉菜单键,大部分安卓手机为何取消菜单键
  6. webpack5不要再用url-loader了
  7. 小米一元流量magisk_电信流量10G才9.9元?
  8. c语言表达式amp;amp;,C语言中的运算符及其优先级
  9. python微控制器编程从零开始 pdf_Python极客项目编程_(美)Mahesh Venkitachalam.pdf
  10. dalsa工业相机8k参数_偏振光相机3——偏振应用