cjson兩種數組的解析方法(轉)


解析數組第一類:

 

 

 像以上格式的數據解析可以使用如下方式:

cJSON *ip_arry     = cJSON_GetObjectItem( clientlist, "iplist");  //clientlist 是使用 cjson對象
if( NULL != ip_arry ){
 cJSON *client_list  = ip_arry->child;
    while( 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探知數組是否有值,可以減少程序錯誤的情況。

原文鏈接:https://www.jianshu.com/p/5d999b2e8cfa

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM