JSON的一个整合两个JSON对应值加合一起

来源:互联网 发布:mysql分页 编辑:程序博客网 时间:2024/05/22 12:51

void JSON_Integration(cJSON *tiny,cJSON *huge){ uchar Nodenum_rel ; uchar Nodenum_day;/* start ReNewing */Nodenum_rel = cJSON_GetArraySize(huge);Nodenum_day = cJSON_GetArraySize(tiny);for(uchar i =0;i<Nodenum_rel;i++){cJSON *Node_realtime = cJSON_GetArrayItem(huge,i);const char *IP_rel = cJSON_GetObjectItem(Node_realtime,"IP")->valuestring;for(uchar j=0;j<Nodenum_day;j++){cJSON *Node_day = cJSON_GetArrayItem(tiny,j);const char *IP_day = cJSON_GetObjectItem(Node_day,"IP")->valuestring;if(strcmp(IP_day,IP_rel)==0){long rx_rel = cJSON_GetObjectItem(Node_realtime,"rx")->valuedouble;long tx_rel = cJSON_GetObjectItem(Node_realtime,"tx")->valuedouble;long err_rel = cJSON_GetObjectItem(Node_realtime,"err")->valuedouble;long rx_day = cJSON_GetObjectItem(Node_day,"rx")->valuedouble;long tx_day = cJSON_GetObjectItem(Node_day,"tx")->valuedouble;long err_day = cJSON_GetObjectItem(Node_day,"err")->valuedouble;rx_rel = rx_rel+rx_day ;tx_rel = tx_rel+tx_day ;err_rel = err_rel+err_day ;cJSON *New = cJSON_CreateObject();cJSON_AddStringToObject(New,"IP",IP_rel);cJSON_AddNumberToObject(New,"rx",rx_rel);cJSON_AddNumberToObject(New,"tx",tx_rel);cJSON_AddNumberToObject(New,"err",err_rel);cJSON_ReplaceItemInArray(huge,i,New);}}}}

备注:代码的思路,遍历一个较小的JSON的文件,从他们之中找到相同的的标志,这里是IP,他们做了统计,然后依次读出后,创建新的JSON ,最后替换。