`
knight_black_bob
  • 浏览: 824103 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

地域统计 测试

    博客分类:
  • java
阅读更多

地域统计 测试

 

 

 

package com.sq.test;
import org.json.JSONArray;
import org.json.JSONObject;

import com.sq.utilities.Constants;
import com.sq.utilities.JSONArrayProcessHelper;

/**
 * <pre>
 *----the day before yesterday-----------------------------
 * 北京 1 123
 * 上海 3 101 
 *----yesterday----------------------------
 * 北京 5 ?
 * 无锡 1 ?
 * 常州 3 ?
 *----statics yesterday----------------------------
 *北京 5 128
 *上海 0 101
 *无锡 1 1
 *常州 3 3
 * </pre>
 * @author baoy
 *
 */
public class UserAreaJsonTest {

   final static String DATA_STRING = "data";
   final static String ALL_USER_COUNT = "all_user_count";
   final static String NEW_USER_COUNT = "new_user_count";
   final static String USER_AREA_CITY = "user_area_city";
	
   public static void main(String[] args) throws Exception {
	   JSONObject yesterday = yesterday();
	   JSONObject newuser = newuser();
	   
		JSONArray yesterdayJsonArray= yesterday.getJSONArray(DATA_STRING);
		JSONArray   todaydayJsonArray = newuser.getJSONArray(DATA_STRING);
		
		JSONObject resultJson = new JSONObject();
		JSONArray jsonArray = new JSONArray();
		getAllSet(yesterdayJsonArray, todaydayJsonArray);
		System.out.println("-----------------------------");
		printLog(yesterdayJsonArray);
		getJSONArray(jsonArray, yesterdayJsonArray, todaydayJsonArray);
		JSONArray jsonArray2 = JSONArrayProcessHelper.sortJSONArray(jsonArray,ALL_USER_COUNT );
		resultJson.put(DATA_STRING, jsonArray2);
		System.out.println("-----------------------------");
		printLog(resultJson);
   }
   
   private static  void   getJSONArray (JSONArray jsonArray, JSONArray yesterdayJsonArray,JSONArray todaydayJsonArray) throws Exception {
	   for (int i = 0; i < yesterdayJsonArray.length(); i++) {
		   JSONObject jObj = yesterdayJsonArray.getJSONObject(i);
			boolean isSelected = false;
		   for (int j = 0; j < todaydayJsonArray.length(); j++) {
			if ( !isSelected  &&  todaydayJsonArray.getJSONObject(j).getString(USER_AREA_CITY) .equals(jObj.getString(USER_AREA_CITY)) ) {
				JSONObject oneObject = new JSONObject();
				oneObject.put(NEW_USER_COUNT ,  todaydayJsonArray.getJSONObject(j).getLong(NEW_USER_COUNT) );
				oneObject.put(USER_AREA_CITY, todaydayJsonArray.getJSONObject(j).getString(USER_AREA_CITY)); 
				oneObject.put(ALL_USER_COUNT, todaydayJsonArray.getJSONObject(j).getLong(NEW_USER_COUNT) + jObj.getLong(ALL_USER_COUNT) );
				jsonArray.put(oneObject);
				isSelected = true;
			}
		   }
		if (isSelected== false) {
			JSONObject oneObject = new JSONObject();
			oneObject.put(NEW_USER_COUNT ,  0 );
			oneObject.put(USER_AREA_CITY, jObj.getString(USER_AREA_CITY)); 
			oneObject.put(ALL_USER_COUNT,jObj.getLong(ALL_USER_COUNT) );
			jsonArray.put(oneObject);
			isSelected = true;
		}
		 
	   }
   }
   
   
   
   
   private static  void  getAllSet(JSONArray yesterdayJsonArray,JSONArray todaydayJsonArray) throws Exception{
	   for (int i = 0; i < todaydayJsonArray.length(); i++) {
		   JSONObject  Jobj= todaydayJsonArray.getJSONObject(i);
		   boolean isSelected = false;
		   for ( int j = 0; j < yesterdayJsonArray.length(); j++) {
			 if(!isSelected && yesterdayJsonArray.getJSONObject(j).getString(USER_AREA_CITY).equals(Jobj.getString(USER_AREA_CITY))) {
				 isSelected = true;
			 }else if (!isSelected &&  j==yesterdayJsonArray.length()-1 ) {
				 isSelected = true;
				 JSONObject oneObject = new JSONObject();
				 oneObject.put(NEW_USER_COUNT ,  0);
				 oneObject.put(USER_AREA_CITY, Jobj.getString(USER_AREA_CITY)); 
				 oneObject.put(ALL_USER_COUNT, 0);
				 yesterdayJsonArray.put(oneObject);
			 }
		   }
		   if (isSelected ==false) {
			   	 isSelected = true;
				 JSONObject oneObject = new JSONObject();
				 oneObject.put(NEW_USER_COUNT ,  0);
				 oneObject.put(USER_AREA_CITY, Jobj.getString(USER_AREA_CITY)); 
				 oneObject.put(ALL_USER_COUNT, 0);
				 yesterdayJsonArray.put(oneObject);
		   }
	   }
   }
   
   
   private static  void   printLog (JSONArray jsonArray) throws Exception{
	   for (int i = 0; i < jsonArray.length(); i++) {
		   JSONObject jObj = jsonArray.getJSONObject(i);
		System.out.println(
				jObj.getString(USER_AREA_CITY)+" "+
				jObj.getLong(NEW_USER_COUNT)+" "+
				jObj.getLong(ALL_USER_COUNT)		);
	   }
   }
   
   private static  void   printLog (JSONObject resultJson) throws Exception{
	   JSONArray yesterdayJsonArray = resultJson.getJSONArray(DATA_STRING);
	   printLog(yesterdayJsonArray);
   }
   
   
   
   
   private static  JSONObject yesterday(){
		JSONObject resultJson = new JSONObject();
		JSONArray jsonArray = new JSONArray();
		try 
		{
			resultJson.put(DATA_STRING, jsonArray);
			 
			JSONObject oneObject = new JSONObject();
			oneObject.put(NEW_USER_COUNT ,  1);
			oneObject.put(USER_AREA_CITY, "北京"); 
			oneObject.put(ALL_USER_COUNT, 123);
			jsonArray.put(oneObject);
			
			JSONObject twoObject = new JSONObject();
			twoObject.put(NEW_USER_COUNT ,  3);
			twoObject.put(USER_AREA_CITY, "上海"); 
			twoObject.put(ALL_USER_COUNT, 101);
			jsonArray.put(twoObject); 
			
			return resultJson;
	     }catch (Exception e){
	    	 return resultJson; 
	     }
		
	 }
   
   
	private static JSONObject newuser(){
		JSONObject resultJson = new JSONObject();
		JSONArray jsonArray = new JSONArray();
		try 
		{
			resultJson.put(DATA_STRING, jsonArray);
			 
			JSONObject oneObject = new JSONObject();
			oneObject.put(NEW_USER_COUNT ,  1);
			oneObject.put(USER_AREA_CITY, "无锡"); 
			jsonArray.put(oneObject);
			
			JSONObject twoObject = new JSONObject();
			twoObject.put(NEW_USER_COUNT ,  3);
			twoObject.put(USER_AREA_CITY, "常州"); 
			jsonArray.put(twoObject);
			
			JSONObject threeObject = new JSONObject();
			threeObject.put(NEW_USER_COUNT ,  5);
			threeObject.put(USER_AREA_CITY, "北京"); 
			jsonArray.put(threeObject);  
			
			
			return resultJson;
	     }catch (Exception e){
	    	 return resultJson; 
	     }
		
	 }
}

 

json 排序

package com.sq.utilities;


import org.apache.log4j.Logger;
import org.json.JSONArray;
import org.json.JSONObject;

public class JSONArrayProcessHelper {
	private static Logger log = Logger.getLogger(JSONArrayProcessHelper.class);

	/**
	 * @param data 需要进行排序的数据
	 * @param tag 对数据的哪个维度进行排序
	 * @param index 输出的排序结果的最长长度,-1表示全部
	 * @return
	 */
	public static JSONArray sortJSONArray(JSONArray data, String tag) {

		if (data == null || tag == null) {
			log.error("Sort JSONArray param is null ");
			return null;
		}

		JSONArray dataArray = data;
		try {
			log.info("begin sort data length is : " + data.length());
			for (int i = 0; i < dataArray.length(); i++) {
				JSONObject teI = dataArray.getJSONObject(i);
				long valueI = teI.getLong(tag);
				for (int j = i; j < dataArray.length(); j++) {
					JSONObject teJ = dataArray.getJSONObject(j);
					long valueJ = teJ.getLong(tag);
					if (valueJ > valueI) {
						// swap
						JSONObject temp = new JSONObject();
						temp = dataArray.getJSONObject(i);
						dataArray.put(i, dataArray.get(j));
						dataArray.put(j, temp);
						valueI = valueJ; // !!
					}
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
		return dataArray;
	}

	 
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

捐助开发者

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。



 
 
 谢谢您的赞助,我会做的更好!

 

 

分享到:
评论

相关推荐

    highmaps统计插件

    很高兴向大家宣布,Highcharts组件Highmaps测试版已经发布。现在,你是不是迫不及待想体验这个新产品。不仅如此,我们也为你提供Highmaps的演示、文档、API地址,再也不用去官网苦苦寻找了。 你是否被Highcharts...

    网络技术在分布式测试系统上的应用

     在线形分布式结构体系中,所有的测试工具和测试仪器――服务器、数据库管理器、数据统计进程控制硬件和软件等――都顺次连接在一个局域网上。远程分布式结构则假设仪器和控制机之间的地理距离在同一端,有关它们的...

    Pilot Fleet 3.0用户使用手册-1

    该系统通过远程控制单元——RCU(Remote Control Unit)可完成自动车载测试,用户可以不受地域限制地通过基于TCP/IP的网络对RCU测试过程进行监控及分析。它支持多个GSM、GPRS、CDMA测试模块同时测试,利用无线Modem...

    基于PHP开发的网站流量统计及分析系统源代码+文档说明.zip

    网站流量统计系统-数据分析模块 日志数据分析模块注意事项 按特定规则分集合存储,比如有些URL被归为PC端,有些被归为移动端,有些被归为第三方合作等等; 按自然日期时间分时归档存储,按时、日、周、月以不同集合...

    医院信息互联互通标准化成熟度测评指标体系

    国家卫生计生委统计信息中心在委规划与信息司的领导下组织开展医疗健康信息互联互通标准化成熟度测评项目工作,从数据资源标准化建设、互联互通标准化建设、基础设施建设和互联互通应用效果等四个方面对区域卫生信息...

    具有智能评价的在线学习平台毕业设计.doc

    远程教育越来 越受到重视,人们已经认识到,传统的学生与教师面对面的问答方式已经受到很大的约 束,特别是地域因素的约束。学生的问题如果老师不在,很难到以解答,这也是大部分 学生最头痛的事。而网上教学不仅仅...

    monitr:Node.js进程监视工具

    然后,这些统计信息通过UDP数据报在本地域套接字上作为JSON消息发送。 以下是模块定期报告的数据列表: { status: { pid: , ts: , cluster: , reqstotal: , utcstart: , events: &lt;number of new reports...

    VC 库存管理系统(毕业设计).rar

    仓库管理信息系统开发:系统在VC++6.0下编译测试通过,它可以完成商品基础信息维护、供应商、仓库、库存管理、客户、地域等信息管理;另外还包括入库管理、出库管理、调货管理、库存盘点、日常业务管理、信息查询...

    IntCRM网络公司客户合同管理系统 v2.5.rar

    多模式的统计功能,让管理者能很好的掌握公司员工、部门、收入、支出的发展趋势。。。 IntCRM客户资料管理系统是经过对数10家网络公司进行实际流程考察,深入探讨和 体验后得出的一套IT网络公司专用客户资料管理...

    毕业设计商品库存管理系统代码加论文

     系统在VC++6.0下编译测试通过,它可以完成商品基础信息维护、供应商、仓库、库存管理、客户、地域等信息管理;另外还包括入库管理、出库管理、调货管理、库存盘点、日常业务管理、信息查询统计等。

    关键词服务培训资料.pptx

    使用量:3721实名和搜索的使用量每天超过5000万人次, 流量排名:据美国Alexa流量统计,3721实名搜索排名全球中文搜索第一位; 网站联盟:8万家网站和近300家电信门户合作伙伴 销售指南 10.客户最感兴趣的促销政

    EnableQ在线问卷调查引擎 v5.0 For Windows 整合安装包.exe

    EnableQ不仅提供简单的频数频率分析,对于样本的地域来源、每一样本的调查回答详细、问卷提交样本在时间维度内的分布、合并调查问题选项后的重新统计、加权问卷分值计算、尚未提交的调查样本分析与提醒,更允许在...

    在线考试系统文献综述

    并在系统实施阶段收集了大量的实验数据,以便测试阶段系统的准确性和稳定性。 系统整体是基于浏览器/服务器,前台应用JSP技术,后台采用SQL Server2000作为数据库与前台连接。 关键词:网络 教育 在线考试 B/S结构 ...

    EnableQ在线问卷调查引擎V2.0

    EnableQ不仅提供简单的频数频率分析,对于样本的地域来源、每一样本的回答详细、问卷提交样本在时间维度内的分布、合并问题选项后的重新统计、加权问卷分值计算、尚未提交样本分析与提醒,更甚至于结合通行证设置,...

    微信小程序大数据分析报告教程.doc

    用户画像:提供小程序的用户画像数据,包括用户地域、性别、平台类型、设备、网络 类型等,功能正在开发中。 概况 昨日概况 查看昨日关键用户指标,反映小程序昨日用户活跃概况,以及对比一天前、一周前、一 月前的...

    百度推广-搜索营销新视角

    3.6.1 设置地域 69 3.6.2 每日消费限额 70 3.6.3 推广时段 70 3.6.4 IP排除 71 3.7 账户数据监测与优化 71 3.7.1 重点优化指标解读 71 3.7.2 账户检查方法 76 3.7.3 优化样本分析流程 78 3.7.4 数据交叉分析 84 3.8 ...

    详细设计说明书

    渠道发展用户日分析: 通过时间、地域、品牌、地理位置类型、排他性等角度分析各类渠道每日新增及离网用户的情况,实现对渠道的整体分析和监控。 支持切片、钻取,旋转等分析操作,以图表形式展现, 能够打印图表,并且...

    怎么做数据分析.docx

    在此基础上,再结合着新老用户、男女用户、年龄分布、地域分布、终端分布、行为差异等维度再来进行更细致的分析。 五、拆数据 这部分就是基于数据本身来做一些拆解,可以分为单指标和多指标两种形式。 单指标主要是...

    数据运营思维导图

    统计时间段内,成功付费的用户数,一般以月为单位统计 活跃付费用户数=月活跃用户数*月付费率 解决问题 了解产品的付费用户规模 付费用户整体的稳定性 了解付费用户构成 鲸鱼用户、海豚用户、小鱼用户各自数量...

    2019数据运营思维导图

    付费用户 时间段内进行过付费行为的用户数 其次还有一个付费次数、不去重 新增付费用户(日、周、月) 活跃付费用户数 定义 统计时间段内,成功付费的用户数,一般以月为单位统计 活跃付费用户数=月活跃用户数*月付...

Global site tag (gtag.js) - Google Analytics