JSON——数组语法

news2024/11/24 6:48:54

一段JSON可能是以 ”{“ 开头

也可能仅包含一段JSON数组 如下

[

   { "name" : "hello,world"},

   {"name" : "SB JSON”},

   {“name” : "SB互联网房地产CNM“},

]

瞧,蛋疼不...CJSON过来还是得搜下网络才知道他又这种格式。

因为CJSON在解析的时候会把数组结成N个 { }。

比如如下

int main(){
    char text[]="[{\"name\":\"Tom1\",\"age\":18},{\"name\":\"Tom2\",\"age\":19},{\"name\":\"Tom3\",\"age\":20},{\"name\":\"Tom4\",\"age\":21}]";
    cJSON * root = cJSON_Parse(text);
    if(!root) {
        printf("no json\n");
        return -1;
    }
    if (!cJSON_IsArray(root)){
        printf("no Array\n");
        return -1;
    }
    //数组长度
    int array_size = cJSON_GetArraySize(root);
    cJSON *item;
    cJSON *name;
    cJSON *age;
    for(int i=0; i< array_size; i++) {
        item = cJSON_GetArrayItem(root, i);
        name = cJSON_GetObjectItem(item, "name");
        if (!name) {
            printf("no name!\n");
            return -1;
        }
        printf("%s\t",name->valuestring);
        age = cJSON_GetObjectItem(item, "age");
        if (!age) {
            printf("no age!\n");
            return -1;
        }
        printf("%d\n",age->valueint);
    }
    return 0;
}
cJSON_Delete(root);

附: CJSON作者传送门 当然亦可以直接点击下面的Github链接:https://github.com/DaveGamble/cJSON

还有网友的贴心整理

JSON及CJSON详解笔记_cjson 16进制-CSDN博客

(76 封私信 / 4 条消息) CJSON封包解包详细操作? - 知乎 (zhihu.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1189513.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新版HI3559AV100开发注意事项

新版HI3559AV100开发注意事项 一、在Hi3559A上使用openCV VideoCapture开启.mp4影像档, isOpened一直得到false 在Hi3559A上已经cross compile ffmepg 4.1openCV 3.4.4 但使用openCV VideoCapture开启.mp4影像档, isOpened一直得到false 请问要如何知道是什么原因无法开启影像…

linux 下 mysql8 修改root初始密码

背景 linux下安装完mysql8以后&#xff0c;无法使用root用户登录或者忘记了root用户的密码&#xff0c;需要修改root用户的密码&#xff1b; 步骤 不想翻译了&#xff0c;专业人员都能看懂。完结 链接 MySQL :: MySQL 8.0 Reference Manual :: B.3.3.2 How to Reset the Roo…

微信小程序真机调试连接状态一直在正常和未链接之间反复横跳?

背景&#xff1a;小程序真机调试的时候&#xff0c;发现真机的network不显示接口调用情况&#xff0c;控制台也没有输出内容。具体如下所示&#xff1b; 解决方法&#xff1a; 1、确保手机端连接的网络和微信开发者工具网络一致&#xff0c;比如用同一个WiFi 2、真机自动调试…

「Qt Widget中文示例指南」如何模拟一个时钟?

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写&#xff0c;所有平台无差别运行&#xff0c;更提供了几乎所有开发过程中需要用到的工具。如今&#xff0c;Qt已被运用于超过70个行业、数千家企业&#xff0c;支持数百万设备及应用。 点击获取Qt Widget组…

R语言将向量横向转换为单行数据框,随后整合数量不确定的数据框

vector1 c(1, “karthik”, “IT”) names(vector1) c(“id”, “name”, “branch”) df data.frame(as.list(vector1)) print(df) 先给向量的元素命名&#xff0c;然后转换为列表&#xff0c;最后转换为数据框。 我的需求大概是这个样子&#xff1a;数量不确定的仅有单行…

java--包

1.什么是包 ①包是用来分别类的管理各种不同程序的&#xff0c;类似于文件夹&#xff0c;建包有利于程序的管理和维护。 ②建包的语法格式&#xff1a; 2.直接程序中调用其他包下的程序的注意事项 ①如果当前程序中&#xff0c;要调用自己所在包下的其他程序&#xff0c;可以…

Maven插件介绍一

Maven插件介绍一 Maven生命周期 Maven 将项目抽象为一个特定生命周期&#xff0c;基于生命周期及其特定阶段搭建框架&#xff0c;以插件的形式提供生命周期不同阶段的业务逻辑。 Maven标准构建生命周期和阶段 生命周期 阶段 说明 Clean pre-clean 在真正项目清理前执行阶…

threejs(11)-精通着色器编程(难点)1

一、初识着色器语言 GLSL 代表 openGL Shading Language&#xff0c;它是着色器程序的特定标准&#xff0c;您将在接下来的章节中看到。根据硬件和操作系统&#xff0c;还有其他类型的着色器。在这里&#xff0c;我们将使用由Khronos Group监管的 openGL 规范。了解 OpenGL 的…

java--String

1.String创建对象封装字符串数据的方式 ①方式一&#xff1a;java程序中的所有字符串文字(例如"abc")都为此类的对象 ②方式二&#xff1a;调用String类的构造器初始化字符串对象。 2.String提供的操作字符串数据的常用方法

table组件隐藏额外内容并使用Toolpit显示(vue3)

找到table组件的APi的一个属性 直接在代码里面添加 效果&#xff1a;

JAVA代码视频转GIF(亲测有效)

1.说明 本次使用的是JAVA代码视频转GIF&#xff0c;maven如下&#xff1a; <dependency><groupId>ws.schild</groupId><artifactId>jave-nativebin-win64</artifactId><version>3.2.0</version></dependency><dependency&…

Spring Gateway网关服务分析

关键原理解析 基本原理 Spring Cloud Route核心可以概括为Gateway过滤器框架和Route定义和解析两块内容。 DefaultFilter、GatewayFilter、GlobalFilter 三种过滤器的区别及执行顺序 SpringCloud Gateway中的提到的过滤器包括三种类型&#xff1a; DefaultFilter&#xff1…

CAN总线协议的理解以及移植stm32代码并使用

什么是CAN总线协议 是一种异步半双工的通讯协议&#xff0c;只有CAN_High与CAN_Low两条信号线。 有两种连接形式&#xff1a;闭环总线&#xff08;高速&#xff09;和开环总线&#xff08;远距离&#xff09; 他使用的是一种差分信号来传输电信号 所谓差分信号就是两条信号线…

软件测试|黑盒测试方法论-判定表

在因果图分析法中最后会得出一个判定表&#xff0c;可以看出因果图和判定表是有联系的&#xff0c;一般需要结合起来使用。 因果图是一种分析工具&#xff0c;通过分析最终得到判定表&#xff0c;再通过判定表编写测试用例。在一定情况下也可以直接书写判定表&#xff0c;省略…

Stable Diffusion webui 源码调试(一)

Stable Diffusion webui 源码调试&#xff08;一&#xff09; 个人模型主页&#xff1a;LibLibai stable-diffusion-webui 版本&#xff1a;v1.4.1 内容更新随机&#xff0c;看心情调试代码~ 调试txt2img的参数和工作流 文件 /work/stable-diffusion-webui/modules/txt2img…

软件测试|selenium执行js脚本

JavaScript是运行在客户端&#xff08;浏览器&#xff09;和服务器端的脚本语言&#xff0c;允许将静态网页转换为交互式网页。可以通过 Python Selenium WebDriver 执行 JavaScript 语句&#xff0c;在Web页面中进行js交互。那么js能做的事&#xff0c;Selenium应该大部分也能…

地铁机电设备健康管理现状及改善方法

轨道交通和我们的生活息息相关&#xff0c;从火车到地铁再到轻轨&#xff0c;给人们的出行带来了很大的便利。因此&#xff0c;保障轨道交通的的正常运行和安全至关重要&#xff0c;需要运维人员及时排查设备的问题&#xff0c;解决故障&#xff0c;保证轨道交通的安全运行。本…

Cygwin工具制作Redis服务端Window版本

文章目录 前言一、cygwin是什么&#xff1f;二、cygwin安装Redis源码编译 前言 在学习到redis&#xff0c;经常需要用到一个redis服务端&#xff0c;如果有买服务器或者本机可以支持经常开虚拟机&#xff0c;也是可以的&#xff0c;如果不具备这些条件&#xff0c;还是本机win…

Leetcode刷题详解——字母大小写全排列

1. 题目链接&#xff1a;784. 字母大小写全排列 2. 题目描述&#xff1a; 给定一个字符串 s &#xff0c;通过将字符串 s 中的每个字母转变大小写&#xff0c;我们可以获得一个新的字符串。 返回 所有可能得到的字符串集合 。以 任意顺序 返回输出。 示例 1&#xff1a; 输入&…

2023年9月少儿编程 中国电子学会图形化编程等级考试Scratch编程二级真题解析(判断题)

2023年9月scratch编程等级考试二级真题 判断题(共10题,每题2分,共20分) 26、下列两个程序运行效果一样 答案:对 考点分析:考查积木综合使用,重点考查重复执行和坐标积木 两个程序都是在x=0,y=100的时候停止,所以正确 27、甲、乙和丙,一位是山东人,一位是河南人,…