首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cJSON库解析json数组

使用cJSON库解析json数组
EN

Stack Overflow用户
提问于 2014-04-29 16:05:21
回答 2查看 6.9K关注 0票数 1

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

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

读取以下JSON数组

代码语言:javascript
复制
{ 
 "name": "Jack", 
  "types":[23,56,78],
 "format": {
 "type": "rect",
  "width": 1920, } 
}

。。并解析使对象使用此方法的方法。

代码语言:javascript
复制
  cJSON *format = cJSON_GetObjectItem(json,"format");

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

但是我不能解析键“名称”和对象简单的键值,

我试过这个

代码语言:javascript
复制
  cJSON *array = cJSON_GetArrayItem(json,"types"); 

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-05-30 12:50:19

我认为JSON元素应该尊重key:value格式。

代码语言:javascript
复制
{ 
 "name": "Jack", 
  "types":[{"type" : 23}, {"type" : 56}, {"type":78}],
 "format": {
 "type": "rect",
  "width": 1920, } 
}
票数 1
EN

Stack Overflow用户

发布于 2017-11-01 07:44:48

你的儿子很好。您可以在cJSON中遍历值数组:

代码语言:javascript
复制
cJSON * array = cJSON_GetObjectItem(json, "types");
for (i = 0 ; i < cJSON_GetArraySize(array) ; i++)
{
    printf("%d ",cJSON_GetArrayItem(array, i)->valueint);
}

将打印

代码语言:javascript
复制
23 56 78
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23369799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档