c - 使用 cJSON 库解析 json 数组

标签 c json cjson

首先,这是一个非常广泛的问题,当我要求社区为我编写代码时,可能会遇到这个问题。这不是我的本意,但我很迷茫,我不知道如何提供足够的信息。

我正在尝试使用由 Dave Gamble 编写的 cJSON 库, 我发现这对于我的嵌入式设备用于 JSON 解析和组合非常有用。

读入以下JSON数组

{ 
 "name": "Jack", 
  "types":[23,56,78],
 "format": {
 "type": "rect",
  "width": 1920, } 
}

.. 并使用此方法解析获取对象

  cJSON *format = cJSON_GetObjectItem(json,"format");

  int framerate = cJSON_GetObjectItem(format,"width")->valueint; 

但我无法解析键“名称”和对象简单键值,

我试过了

  cJSON *array = cJSON_GetArrayItem(json,"types"); 

  int value = cJSON_GetArrayItem(format1,1)->valueint;

但是没有用,如何解析数组对象和简单的键值..

最佳答案

你的 json 没问题。您可以遍历 cJSON 中的值数组:

cJSON * array = cJSON_GetObjectItem(json, "types");
for (i = 0 ; i < cJSON_GetArraySize(array) ; i++)
{
    printf("%d ",cJSON_GetArrayItem(array, i)->valueint);
}

将打印

23 56 78

关于c - 使用 cJSON 库解析 json 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23369799/

相关文章:

c - 如何允许非选项参数以任何顺序获取 getopt?

c - 多次检查 C 语言中的 'if statement' 但不工作

c - 如何在 cJSON 中测试 bool 值是否为 TRUE/FALSE

php - 删除 echo json_encode() 上的引号;

c - 如何在 cJSON 和 protobuf 字节变量之间进行转换

cJSON内存泄漏

c - 按位与运算符 & 的作用是什么?

c - 如何在 printf 中插入动态输出?

PHP将从Android接收到的POST数据插入MySQL数据库

javascript - 如何自动检查 JSON 中的新数据?