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

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





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值