CJSON parse.c
#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相关推荐
- ESP32在线语音识别 词法解析
文章目录 在线语音识别的优势 一,语音识别流程图 二,录音 三,词法分析 在线语音识别的优势 在线语音识别结合语义分析,具有识别精准,灵活性高的特点,但是,其处理速度不如离线识别. 一,语音识别流程图 ...
- STM32使用串口空闲中断接收不定长数据帧-USART_IT_IDLE使用(不使用DMA方式)
STM32使用串口空闲中断接收不定长数据帧-USART_IT_IDLE使用(不使用DMA方式) 前言 串口空闲中断介绍 清中断方法 串口中断处理函数 串口中断用到的全局变量定义 串口初始化(使能接收中 ...
- 基于全志D1-H哪吒让LVGL8带的Music-Demo音乐响起来
LVGL8 自带的有一个音乐播放器的Demo,效果不错,充分展示了LVGL8的弹性网格布局,动画等效果,来学习GUI是非常不错的,只是这个Demo并不能真正的播放音乐,但是已经把音乐播放的逻辑都给实现 ...
- 网易云VIP音乐NCM文件转MP3,C语言版本
前言 网易云的Vip音乐下载下来,格式不是mp3/flac这种通用的音乐格式,而是经过加密的ncm文件.只有用网易云的音乐App才能够打开.于是想到可不可以把.ncm文件转换成mp3或者flac文件, ...
- cJSON使用教程(树外构建 out of tree build 概念)(组包概念)
JSON基础:包括组包的概念等 Github:DaveGamble/cJSON https://github.com/DaveGamble/cJSON 文章目录 Github:DaveGamble/c ...
- cjson使用_LiteOS云端对接教程01-cJSON组件使用教程
1. JSON与cJSON JSON -- 轻量级的数据格式 JSON 全称 JavaScript Object Notation,即 JS对象简谱,是一种轻量级的数据格式. 它采用完全独立于编程语言 ...
- DSP学习 -- cJSON使用教程
如需转载请注明出处 https://juyou.blog.csdn.net/article/details/107870229 JSON 需要简单的了解一下.谁知道啥时候用上呢~ 一.JSON简介 参 ...
- JSON数据格式解析库(cJSON、Jansson)的使用在STM32上移植和使用
json | json-c使用入门 这篇讲的也不错,抽空看下(网络传输json数据) https://www.bilibili.com/video/av669454528?p=3&spm_id ...
- c语言组json包,json格式解析和libjson的用法介绍(关于cjson的使用方法)
在阅读本文之前,请先阅读下<Rss Reader实例开发之系统设计>一文. Rss Reader实例开发中,进行网络数据交换时主要使用到了两种数据格式:JSON与XML.本文主要介绍JSO ...
最新文章
- max_semi_space_size 设置值与实际值不一致的原因分析
- WebAssembly:面向Web的通用二进制和文本格式
- asp.net如何在用户关闭浏览器时执行Session_End方法
- 搭建IIS并配置网站之旅
- C# 获取可执行文件路径的上上级目录的方法
- 如何将前端数据保存到文件
- Springboot(十):邮件服务
- python抓取页面数据实例
- Git 常用命令总结,掌握这些,轻松驾驭版本管理
- oracleXE简易版---使用基础
- 整合DZ .net论坛与.net整合。
- C++基础知识点(3)
- [Shader2D]浮雕效果
- Linux学习_系统文件IO
- 基于 React hooks + Typescript + Cesium 实现泛光尾迹线
- 超快自旋电子学为电子信息新材料开辟了道路
- Word技巧之:将PPT框图以可编辑形式插入Word文档
- VLAN间路由的配置
- 1、使用类与接口的知识完成如下要求:(1)定义一个接口CanFly,描述会飞的方法public void fly();(2)分别定义类飞机和鸟,实现CanFly接口。(3)定义一个测试类,测试飞
- nacos项目启动报错:Connection refused: no further information
热门文章
- IDEA Properties 文件乱码
- 重做 oracle_Oracle数据库基本知识(1)-数据库(1)
- python 发邮件 timeout_python3 发送邮件 出现的问题(新手)
- python 逐行读取文件_Python fileinput模块:逐行读取多个文件
- android去掉菜单键,大部分安卓手机为何取消菜单键
- webpack5不要再用url-loader了
- 小米一元流量magisk_电信流量10G才9.9元?
- c语言表达式amp;amp;,C语言中的运算符及其优先级
- python微控制器编程从零开始 pdf_Python极客项目编程_(美)Mahesh Venkitachalam.pdf
- dalsa工业相机8k参数_偏振光相机3——偏振应用