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 ,最后替换。