遍历 JSON 数组的思路是:

1 通过 cJSON_GetArraySize() 函数获取数组的元素个数;

2 通过 cJSON_GetArrayItem() 函数,根据数组的下标,获取下标对应的元素;

//========================================================================

如下是测试的例子:

#include <stdio.h>
#include <stdlib.h>
#include "cJSON.h"

void json_create(void);
void json_parse(void);
//========================================================
//========================================================
void print_json(cJSON *p)
{
    printf("============================\n");
    printf("type = %d\n", p->type);
    printf("valuestring = %s\n", p->valuestring);
    printf("valueint = %d\n", p->valueint);
    printf("valuedouble = %f\n", p->valuedouble);
    printf("string = %s\n", p->string);
    printf("============================\n");
}
//========================================================
//========================================================
int main (int argc, const char * argv[])
{
    json_create();
}

//========================================================
//========================================================
void json_create(void)
{
    cJSON *array = cJSON_CreateArray();
    cJSON *v1;
    int i;
    
    cJSON_AddItemToArray(array, cJSON_CreateString("www"));
    cJSON_AddItemToArray(array, cJSON_CreateNumber(12));
    cJSON_AddItemToArray(array, cJSON_CreateNumber(12.345));

char *out = cJSON_Print(array);
    printf("%s\n",out);
    print_json(array);

int len = cJSON_GetArraySize(array);
    printf("len = %d\n", len);
    for(i = 0; i < len; i++)
    {
        v1 =cJSON_GetArrayItem(array , i);
        print_json(v1);
    }

cJSON_Delete(array);
}

运行的结果如下:

[hill@Ubunut10 test1]$./test 
["www", 12, 12.345000]
============================
type = 5
valuestring = (null)
valueint = 0
valuedouble = 0.000000
string = (null)
============================
len = 3
============================
type = 4
valuestring = www
valueint = 0
valuedouble = 0.000000
string = (null)
============================
============================
type = 3
valuestring = (null)
valueint = 12
valuedouble = 12.000000
string = (null)
============================
============================
type = 3
valuestring = (null)
valueint = 12
valuedouble = 12.345000
string = (null)
============================
[hill@Ubunut10 test1]$

韦凯峰 Linux C/C++零基础编程教程
Linux系统编程,Openwrt系统开发

json数组遍历-第5讲相关推荐

  1. html如何遍历ajax数组,ajax返回json数组遍历添加到html

    大致需求为类型限制根据类型获取不同结果列表,再根据模糊查询搜索出结果,效果如下:- 例子:利用AJAX返回JSON数据,间接访问数据库,查出Nation 表,并用下拉列表显示 造一个外部下拉列表框 J ...

  2. fastjson:json数组遍历

    /**      * 遍历JSONArray      */     private static void LoopJSONArray(){         //颜色数组字符串         St ...

  3. c json 数组转dirction_值得掌握的命令行JSON工具jq

    我们都知道现在JSON是最常用的配置和数据交换格式之一,尤其是大量的系统API接口现在基本上都是以JSON格式显示结果.JSON(JavaScript Object Notation) 是一种轻量级的 ...

  4. JSON数组,JSON对象,数组的区别

    一.JSON 语法规则: JSON 是存储和交换文本信息的语法 在开发过程中,经常需要和别的系统交换数据,数据交换的格式有XML.JSON等, JSON作为一个轻量级的数据格式比xml效率要高,XML ...

  5. jQuery遍历json数组怎么整。。。

    {"options":"[{\"text\":\"王家湾\",\"value\":\"9\" ...

  6. layui遍历json数组_shell脚本:json格式化与字段抓取(下)

    接上一篇. 2 字段抓取 2.1 规则制定 先规定字段抓取的规则,对于给定的json: .:表示整个json: .fieldName:表示抓取fieldName字段的值,可能是字符串.布尔值.数字,或 ...

  7. 遍历json数组的常用方式

    遍历json对象数组 1. 传统数组遍历 var data=[{"name":"zhangsan","age":12},{"nam ...

  8. powershell /遍历/psobject/字符串转换Json/json数组操作

    读取json文档 $json = (Get-Content "C:\HDDList.json" -Raw) | ConvertFrom-Json $select=$json.Con ...

  9. js遍历json数组给html td赋值,JS实现给json数组动态赋值的方法示例

    关注微信公众号 JS实现给json数组动态赋值的方法示例 转载  更新时间:2017年07月04日 10:19:00   作者:小魏的马仔 这篇文章主要介绍了JS实现给json数组动态赋值的方法,结合 ...

最新文章

  1. 美团架构师开源5万字的《Java面试手册》PDF免费下载!
  2. linux mysql 数据目录迁移后不生效_Linux中更改转移mysql数据库目录的步骤
  3. 如何将自己的代码放到github上
  4. 使用redis的发布订阅模式实现消息队列
  5. 统计学习方法(第二版)-学习笔记
  6. 4. 用MVC实现URL路由
  7. C++之operator关键字(重载操作符) 使用总结
  8. endnote如何导入txt文件_python如何处理txt及excel文件
  9. pytorch的余弦退火学习率
  10. java 字符串截取_java截取字符串几种方式
  11. apk 反编译工具及使用
  12. 使用Excel生成符合正态分布的随机数
  13. 第四章:经典量化策略集锦(第八篇:CAPM模型的应用 )
  14. 每天老听别人念叨“算法+数据结构=程序”,知道是谁说的么?一起走进Pascal语言之父——图灵奖得主尼古拉斯·沃斯
  15. SSH Agent Forwarding概念与示例
  16. cesium绘制折线_polyline
  17. Appium(Python)测试混血App
  18. QuickBooks 2018 For Dummies 免积分下载
  19. MySQL数据库的基本操作-创建(create database)、选择(use)、查看(shows database)、删除(drop database)
  20. 什么是OAuth2,微信登录前后端实现,Coding在线(十三)

热门文章

  1. 数据库设计-逻辑设计
  2. 蚂蚁金服通讯框架学习一
  3. 详解BUG(又名:BUG的生命周期)
  4. 计算机协会财务部部长职责,社团财务部部长职责.doc
  5. 年薪80W,Java高薪架构师成长背后血泪史
  6. 随机数字信号处理期末大报告——基于卡尔曼滤波的自由落体运动目标跟踪MATLAB实现
  7. Linux应用开发基础
  8. 机器学习:k-means聚类算法+算法优化
  9. JSP基础教程:熟悉JSP服务器
  10. 什么是模块化,为什么要模块化