首先,这是一个非常广泛的问题,当我要求社区为我编写代码时,可能会遇到这个问题。这不是我的意图,但我迷失了,我不知道如何提供足够的信息。
我正在尝试使用由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;
但是我无法解析键“name”和对象简单键值
我试过这个
cJSON *array = cJSON_GetArrayItem(json,"types");
int value = cJSON_GetArrayItem(format1,1)->valueint;
但是没有用,如何解析数组对象和简单的键值..
答案 0 :(得分:1)
我认为JSON元素应该尊重key:value format。
{
"name": "Jack",
"types":[{"type" : 23}, {"type" : 56}, {"type":78}],
"format": {
"type": "rect",
"width": 1920, }
}
答案 1 :(得分:1)
你的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