cjson兩種陣列的解析方法
阿新 • • 發佈:2019-02-03
原文出處:
作者:爪爪熊
解析陣列第一類:
像以上格式的資料解析可以使用如下方式:
cJSON *ip_arry = cJSON_GetObjectItem( clientlist, "iplist"); //clientlist 是使用 cjson物件 if( NULL != ip_arry ){ cJSON *client_list = ip_arry->child; if( client_list != NULL ){ char * ip = cJSON_GetObjectItem( client_list , "ip")->valuestring ; char * mask = cJSON_GetObjectItem( client_list , "mask")->valuestring ; printf("ip: %s mask: %s",ip,mask); client_list = client_list->next ; } }
解析陣列第二類:
有時候得到的資料需要是這個樣子的,這時候就需要如下的解析方法了:
cJSON *MAC_arry = cJSON_GetObjectItem( clientlist, "Maclist"); if( MAC_arry != NULL ){ int array_size = cJSON_GetArraySize ( MAC_arry ); for( iCnt = 0 ; iCnt < array_size ; iCnt ++ ){ cJSON * pSub = cJSON_GetArrayItem(MAC_arry, iCnt); if(NULL == pSub ){ continue ; } char * ivalue = pSub->valuestring ; printf("Maclist[%d] : %s",iCnt,ivalue); } }
通過判斷判斷MAC_arry探知陣列是否有值,可以減少程式錯誤的情況。