public String[][] getJSON(){
		@SuppressWarnings("unchecked")
		ArrayList<String>[] temp = new ArrayList[5];
		for (int i = 0; i < temp.length; i++){
			temp[i] = new ArrayList<String>();
		}
		for (AirNowDataSite site : dataSites){
			for (AirNowDataPoint[] dataArray : site.getDataPoints()){
				temp[0].add(site.getId());
				temp[1].add(site.getName());
				temp[2].add("[\"" + dataArray[0].getDataTypeName() + "\"]");
				temp[3].add("{\"" + dataArray[0].getDataTypeName() + "\":{\"type\":\"Float\",\"units\":\"" + dataArray[0].getDataTypeUnits() + "\"}}");
				StringBuilder dataJSON = new StringBuilder("[");
				ArrayList<Long> times = new ArrayList<Long>();
				ArrayList<Double> values = new ArrayList<Double>();
				for (AirNowDataPoint dataPoint : dataArray){
					addInOrder(times,values,dataPoint.getTimeStamp(),dataPoint.getValue());
				}
				for (int i = 0; i < times.size(); i++){
					if (i != 0)
						dataJSON.append(",");
					dataJSON.append("[");
					dataJSON.append(times.get(i) / 1000.0);
					dataJSON.append(",").append(values.get(i));
					dataJSON.append("]");
				}
				dataJSON.append("]");
				temp[4].add(dataJSON.toString());
			}
		}
		
		String[][] retArray = new String[temp.length][];
		for (int i = 0; i < retArray.length; i++){
			retArray[i] = temp[i].toArray(new String[]{});
		}
		return retArray;
	}