0


JSON——数组语法

一段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)

标签: json

本文转载自: https://blog.csdn.net/loveboon1/article/details/134319300
版权归原作者 loveboon1 所有, 如有侵权,请联系我们删除。

“JSON——数组语法”的评论:

还没有评论