十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
遍歷 JSON 數(shù)組的思路是:
1 通過 cJSON_GetArraySize() 函數(shù)獲取數(shù)組的元素個(gè)數(shù);
2 通過 cJSON_GetArrayItem() 函數(shù),根據(jù)數(shù)組的下標(biāo),獲取下標(biāo)對(duì)應(yīng)的元素;
//========================================================================
如下是測試的例子:
#include
#include
#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);
}
運(yùn)行的結(jié)果如下:
[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++零基礎(chǔ)編程教程
Linux系統(tǒng)編程,Openwrt系統(tǒng)開發(fā)
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧