HighCharts 柱状图的实现

HighCharts 柱状图的实现

//上周和本周的时间设置:上周(dbbartime4至dbbartime3);本周(dbbartime2至dbbartime1)
Calendar c2 = Calendar.getInstance();
c2.add(Calendar.DAY_OF_MONTH, -1);
String dbbartime1 = sf.format(c2.getTime());
c2.add(Calendar.DAY_OF_MONTH, -6);
String dbbartime2 = sf.format(c2.getTime());
c2.add(Calendar.DAY_OF_MONTH, -1);
String dbbartime3 = sf.format(c2.getTime());
c2.add(Calendar.DAY_OF_MONTH, -5);
String dbbartime4 = sf.format(c2.getTime());


model.addAttribute("dbbartime1", dbbartime1);
model.addAttribute("dbbartime2", dbbartime2);
model.addAttribute("dbbartime3", dbbartime3);
model.addAttribute("dbbartime4", dbbartime4);


在dbbargraph.jsp中:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%> 
 <%@ include file="/WEB-INF/views/include/easyui-head2.jsp"%> 
<link rel="stylesheet" type="text/css" href="static/theme/css/operation/count.css">
<script type="text/javascript" src="static/js/operation/dbbargraph.js" ></script>
<script type="text/javascript" src="static/js/_Highcharts/highcharts.js"></script>
<div class="panel panel-info">
<div class="panel-header panel-header-index clearfix">
<h3 class="pull-left">数据到报统计柱状图</h3>
</div>
<div class="zf_fitem">
<label>类型:</label>
<select id="type_id" class="easyui-combobox" name="timeid"  style="width:60px;" required="true" editable="false">
   <option value="0">到报率</option>
   <option value="1">延时</option>
</select>
<label class="label2">上周:</label>
<input id="dbbartime4" style="font-size: 13px;width:90px;" readonly="readonly" class="calendar" value="${dbbartime4}"></input>
<label class="label3">至</label> <input id="dbbartime3" style="font-size: 13px;width:90px;" readonly="readonly" class="calendar" value="${dbbartime3}"></input>
<label class="label2">本周:</label>
<input id="dbbartime2" style="font-size: 13px;width:90px;" readonly="readonly" class="calendar" value="${dbbartime2}"></input>
<label class="label3">至</label> <input id="dbbartime1" style="font-size: 13px;width:90px;" readonly="readonly" class="calendar" value="${dbbartime1}"></input> 
<button class="button button-mini button-primary" id="checkbtn" onclick="dbbarshow()" style="font-size: 14px;">查询</button>
</div>
<div id="canvas2" style="height:90%;"></div>
</div> 
在easyui-head2.jsp中:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<link rel="stylesheet" type="text/css" href="static/js/plugins/easyui-1.3.6/themes/default/easyui2.css">
<link rel="stylesheet" type="text/css" href="static/js/plugins/easyui-1.3.6/themes/icon.css">
<script type="text/javascript" src="static/js/common/uuid.js"></script>
<script type="text/javascript" src="static/js/plugins/easyui-1.3.6/jquery.easyui.min.js"></script>
<script type="text/javascript" src="static/js/plugins/easyui-1.3.6/locale/easyui-lang-zh_CN.js"></script>
<script type="text/javascript" src="static/js/common/easyui.common.js"></script>
在dbbargraph.js中:
$(document).ready(function(){
dbbartime4 = $('#dbbartime4').val();
dbbartime3 = $('#dbbartime3').val();
dbbartime2 = $('#dbbartime2').val();
dbbartime1 = $('#dbbartime1').val();
type = $('#type_id').combobox('getValue');
showChart2(dbbartime4,dbbartime3,dbbartime2,dbbartime1,type);
});


function dbbarshow(){
dbbartime4 = $('#dbbartime4').val();
dbbartime3 = $('#dbbartime3').val();
dbbartime2 = $('#dbbartime2').val();
dbbartime1 = $('#dbbartime1').val();
type = $('#type_id').combobox('getValue');
showChart2(dbbartime4,dbbartime3,dbbartime2,dbbartime1,type);
}


function showChart2(dbbartime4,dbbartime3,dbbartime2,dbbartime1,type){
var labellist;
var countlist;
var timelist;
var arrcountlist=[]; //存放上周数据
var arrtimelist=[]; //存放本周数据
$.ajax({    
   url:path + '/operation/getDbBarGraph',
   data:{
    dbbartime4 : dbbartime4,
    dbbartime3 : dbbartime3,
    dbbartime2 : dbbartime2,
    dbbartime1 : dbbartime1,
type : type
},
   type:'post',  
   contentType:"application/x-www-form-urlencoded;charset=utf-8", 
   dataType:'json',    
   success:function(msg){
    $("#canvas2").html('');
    labellist = msg[0].all[0].labellist; //横轴数据
    countlist = msg[0].all[1].countlist;
    timelist = msg[0].all[2].timelist;
    for(var i =0; i<countlist.length;i++){
    var aa = Number(countlist[i]);
    arrcountlist.push(aa); //上周数据
    }
    for(var i =0; i<timelist.length;i++){
    var aa = Number(timelist[i]);
    arrtimelist.push(aa); //本周数据
    }
    $(function () {
       $('#canvas2').highcharts({
       chart: {
           type: 'column',
           margin: [ 20, 20, 60, 60]  //整个图表的位置(上下左右的空隙) 
       },
       title: {
           text: ''
       },
       
       xAxis: {
           categories:labellist,
           labels: {
               rotation: 0, //横坐标45度倾斜
               align: 'center',
               style: {
                   fontSize: '13px',
                   fontFamily: 'Verdana, sans-serif'
               }
           }
       },
       yAxis: {
           min: 0,
           title: {
               text: ''
           }
       },
       legend: {
           enabled: true
       },
        credits: {
                   enabled: false
               },
               
               /*plotOptions: {
                column: {
                       dataLabels: {
                           enabled: true
                       }
                   }
               },*/
               plotOptions: {
                   series: {
                       dataLabels: {
                           enabled: true
                       }
                   }
               },                                                            
//                    plotOptions: {
//                 series: {
//                            events: {
//                                //控制图标的图例legend不允许切换
//                               legendItemClick: function (event){                                    
// 
//                                return false; //return  true 则表示允许切换
//                                }
//                            }
//                        }
//            },
//        tooltip: {
//            valueSuffix: ' 小时'
//        },
       series: [{
           name: '上周',
           data: arrcountlist,
           color:'#5380B9',  //上周柱状图的颜色
           tooltip: {
            valueSuffix: ' '
            },
           
           /*dataLabels: {
               enabled: true, //这个属性:柱状图上面显示不显示数据
               rotation: -90, //显示数据的方向偏向
               color: '#FFFFFF',
               align: 'right',
               x: 4,
               y: 10,
               style: {
                   fontSize: '13px',
                   fontFamily: 'Verdana, sans-serif',
                   textShadow: '0 0 3px black'
               }
           }*/
           
       },{
        name:'本周',
        data:arrtimelist,
        color:'#C14F4F', //本周柱状图的颜色
        tooltip: {
            valueSuffix: ' '
            }
           
       
       }]
       });
    });
   
   }
}); 
}
Java类方法:
@ResponseBody
@RequestMapping(value = "/getDbBarGraph", produces = "application/html; charset=utf-8")
public String getDbBarGraph(Model model, HttpServletRequest request,HttpServletResponse response) {
try {
//上周:dbbartime4至dbbartime3
String dbbartime4 = request.getParameter("dbbartime4");
String dbbartime3 = request.getParameter("dbbartime3");
//本周:dbbartime2至dbbartime1
String dbbartime2 = request.getParameter("dbbartime2");
String dbbartime1 = request.getParameter("dbbartime1");
String type = request.getParameter("type");
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
//判断时间是否为空
if(dbbartime4 == null || "".equals(dbbartime4)) {
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -13);
dbbartime4 = sf.format(c.getTime());
}
if(dbbartime3 == null || "".equals(dbbartime3)) {
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -8);
dbbartime3 = sf.format(c.getTime());
}
if(dbbartime2 == null || "".equals(dbbartime2)) {
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -7);
dbbartime2 = sf.format(c.getTime());
}
if(dbbartime1 == null || "".equals(dbbartime1)) {
Calendar c = Calendar.getInstance();
c.add(Calendar.DAY_OF_MONTH, -1);
dbbartime1 = sf.format(c.getTime());
}
String sql1 = "";
String sql2 = "";
String sql3 = "";
String sql4 = "";
String sql5 = "";
String sql6 = "";
String sql7 = "";
String sql8 = "";
if (type.equals("0")) { //到报率
//深圳市遥测站 上周 到报率
sql1 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao, (sum(t.shouldquantity)/sum(t.realquantity))*100 rate from t_data_statistics t where t.dsid=1 and t.dtypeid=1 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
//深圳市自动站 上周 到报率
sql2 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao,(sum(t.realquantity)/sum(t.shouldquantity))*100 rate from t_data_statistics t where t.dsid=4 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
//广东省自动站 上周 到报率
sql3 = "select count(1)*288 yingdao,sum(sumcount) shidao,(sum(sumcount)/(count(1)*288))*100 rate from t_qxdatasum where dtype=1 and ddatetime>= to_date(?,'yyyy-MM-dd') and ddatetime<=to_date(?,'yyyy-MM-dd') and timedelay<500";
//广东省雷达数据 上周 到报率
sql4 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao ,(sum(t.realquantity)/sum(t.shouldquantity))*100 rate from t_data_statistics t where t.dsid=2 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
List<Object> dbList = new ArrayList<Object>();
dbList.add(dbbartime4);
dbList.add(dbbartime3);
EntityManager entityManager = dao.getWbwxszidcEntityManager();
List<Map<String, Object>> list1 = ybzxTwoService.queryListMapByList(sql1, dbList, entityManager);
List<Map<String, Object>> list2 = ybzxTwoService.queryListMapByList(sql2, dbList, entityManager);
List<Map<String, Object>> list3 = ybzxTwoService.queryListMapByList(sql3, dbList, entityManager);
List<Map<String, Object>> list4 = ybzxTwoService.queryListMapByList(sql4, dbList, entityManager);
float sql1rate = Float.parseFloat(list1.get(0).get("rate".toUpperCase()) == null ? "" : list1.get(0).get("rate".toUpperCase()).toString());
float sql2rate = Float.parseFloat(list2.get(0).get("rate".toUpperCase()) == null ? "" : list2.get(0).get("rate".toUpperCase()).toString());
float sql3rate = Float.parseFloat(list3.get(0).get("rate".toUpperCase()) == null ? "" : list3.get(0).get("rate".toUpperCase()).toString());
float sql4rate = Float.parseFloat(list4.get(0).get("rate".toUpperCase()) == null ? "" : list4.get(0).get("rate".toUpperCase()).toString());
//深圳市遥测站 本周 到报率
sql5 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao, (sum(t.shouldquantity)/sum(t.realquantity))*100 rate from t_data_statistics t where t.dsid=1 and t.dtypeid=1 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
//深圳市自动站 本周 到报率
sql6 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao,(sum(t.realquantity)/sum(t.shouldquantity))*100 rate from t_data_statistics t where t.dsid=4 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
//广东省自动站 本周 到报率
sql7 = "select count(1)*288 yingdao,sum(sumcount) shidao,(sum(sumcount)/(count(1)*288))*100 rate from t_qxdatasum where dtype=1 and ddatetime>= to_date(?,'yyyy-MM-dd') and ddatetime<=to_date(?,'yyyy-MM-dd') and timedelay<500";
//广东省雷达数据 本周 到报率
sql8 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao ,(sum(t.realquantity)/sum(t.shouldquantity))*100 rate from t_data_statistics t where t.dsid=2 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
List<Object> dbList2 = new ArrayList<Object>();
dbList2.add(dbbartime2);
dbList2.add(dbbartime1);
List<Map<String, Object>> list5 = ybzxTwoService.queryListMapByList(sql5, dbList2, entityManager);
List<Map<String, Object>> list6 = ybzxTwoService.queryListMapByList(sql6, dbList2, entityManager);
List<Map<String, Object>> list7 = ybzxTwoService.queryListMapByList(sql7, dbList2, entityManager);
List<Map<String, Object>> list8 = ybzxTwoService.queryListMapByList(sql8, dbList2, entityManager);
float sql5rate = Float.parseFloat(list5.get(0).get("rate".toUpperCase()) == null ? "" : list5.get(0).get("rate".toUpperCase()).toString());
float sql6rate = Float.parseFloat(list6.get(0).get("rate".toUpperCase()) == null ? "" : list6.get(0).get("rate".toUpperCase()).toString());
float sql7rate = Float.parseFloat(list7.get(0).get("rate".toUpperCase()) == null ? "" : list7.get(0).get("rate".toUpperCase()).toString());
float sql8rate = Float.parseFloat(list8.get(0).get("rate".toUpperCase()) == null ? "" : list8.get(0).get("rate".toUpperCase()).toString());
//到报率四舍五入
DecimalFormat df = new DecimalFormat("0.00");//格式化小数,不足的补0
String rate1 = df.format(sql1rate);//返回的是String类型的
String[] arr1 = rate1.split("\\.");
String a1 = arr1[1];
if("00".equals(a1)){
rate1 = arr1[0];
}
String rate2 = df.format(sql2rate);//返回的是String类型的
String[] arr2 = rate2.split("\\.");
String a2 = arr2[1];
if("00".equals(a2)){
rate2 = arr2[0];
}
String rate3 = df.format(sql3rate);//返回的是String类型的
String[] arr3 = rate3.split("\\.");
String a3 = arr3[1];
if("00".equals(a3)){
rate3 = arr3[0];
}
String rate4 = df.format(sql4rate);//返回的是String类型的
String[] arr4 = rate4.split("\\.");
String a4 = arr4[1];
if("00".equals(a4)){
rate4 = arr4[0];
}
String rate5 = df.format(sql5rate);//返回的是String类型的
String[] arr5 = rate5.split("\\.");
String a5 = arr5[1];
if("00".equals(a5)){
rate5 = arr5[0];
}
String rate6 = df.format(sql6rate);//返回的是String类型的
String[] arr6 = rate6.split("\\.");
String a6 = arr6[1];
if("00".equals(a6)){
rate6 = arr6[0];
}
String rate7 = df.format(sql7rate);//返回的是String类型的
String[] arr7 = rate7.split("\\.");
String a7 = arr7[1];
if("00".equals(a7)){
rate7 = arr7[0];
}
String rate8 = df.format(sql8rate);//返回的是String类型的
String[] arr8 = rate8.split("\\.");
String a8 = arr8[1];
if("00".equals(a8)){
rate8 = arr8[0];
}
net.sf.json.JSONArray jsonArray = new net.sf.json.JSONArray();
Map<String, List<Map<String, Object>>> allmap = new HashMap<String, List<Map<String, Object>>>();
List<Map<String, Object>> alllist = new ArrayList<Map<String, Object>>();
Map<String, Object> labelmap = new HashMap<String, Object>();
Map<String, Object> countmap = new HashMap<String, Object>();
Map<String, Object> timemap = new HashMap<String, Object>();
ArrayList<String> lb = new ArrayList<String>();
ArrayList<String> countlist = new ArrayList<String>();
ArrayList<String> timelist = new ArrayList<String>();

lb.add("深圳市遥测站");
countlist.add(rate1);
timelist.add(rate5);
lb.add("深圳市自动站");
countlist.add(rate2);
timelist.add(rate6);
lb.add("广东省自动站");
countlist.add(rate3);
timelist.add(rate7);
lb.add("广东省雷达数据");
countlist.add(rate4);
timelist.add(rate8);
countmap.put("countlist", countlist);
timemap.put("timelist", timelist);
labelmap.put("labellist", lb);
alllist.add(labelmap);
alllist.add(countmap);
alllist.add(timemap);
allmap.put("all", alllist);
jsonArray = UtilsJson.object2json(allmap);
response.getWriter().print(jsonArray);
}else if(type.equals("1")) { //延时
//深圳市遥测站 上周 延时
sql1 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao,sum(t.relay)/count(*) relay from t_data_statistics t where t.dsid=1 and t.dtypeid=1 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
//深圳市自动站 上周 延时
sql2 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao,sum(t.relay)/count(*) relay from t_data_statistics t where t.dsid=4 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
//广东省自动站 上周 延时
sql3 = "select count(1)*288 yingdao,sum(sumcount) shidao,sum(timedelay)/count(1) relay from t_qxdatasum where dtype=1 and ddatetime>= to_date(?,'yyyy-MM-dd') and ddatetime<=to_date(?,'yyyy-MM-dd') and timedelay<500";
//广东省雷达数据 上周 延时
sql4 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao,sum(t.relay)/count(*) relay from t_data_statistics t where t.dsid=2 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
List<Object> dbList = new ArrayList<Object>();
dbList.add(dbbartime4);
dbList.add(dbbartime3);
EntityManager entityManager = dao.getWbwxszidcEntityManager();
List<Map<String, Object>> list1 = ybzxTwoService.queryListMapByList(sql1, dbList, entityManager);
List<Map<String, Object>> list2 = ybzxTwoService.queryListMapByList(sql2, dbList, entityManager);
List<Map<String, Object>> list3 = ybzxTwoService.queryListMapByList(sql3, dbList, entityManager);
List<Map<String, Object>> list4 = ybzxTwoService.queryListMapByList(sql4, dbList, entityManager);
float sql1relay = Float.parseFloat(list1.get(0).get("relay".toUpperCase()) == null ? "" : list1.get(0).get("relay".toUpperCase()).toString());
float sql2relay = Float.parseFloat(list2.get(0).get("relay".toUpperCase()) == null ? "" : list2.get(0).get("relay".toUpperCase()).toString());
float sql3relay = Float.parseFloat(list3.get(0).get("relay".toUpperCase()) == null ? "" : list3.get(0).get("relay".toUpperCase()).toString());
float sql4relay = Float.parseFloat(list4.get(0).get("relay".toUpperCase()) == null ? "" : list4.get(0).get("relay".toUpperCase()).toString());
//深圳市遥测站 本周 延时
sql5 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao,sum(t.relay)/count(*) relay from t_data_statistics t where t.dsid=1 and t.dtypeid=1 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
//深圳市自动站 本周 延时
sql6 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao,sum(t.relay)/count(*) relay from t_data_statistics t where t.dsid=4 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
//广东省自动站 本周 延时
sql7 = "select count(1)*288 yingdao,sum(sumcount) shidao,sum(timedelay)/count(1) relay from t_qxdatasum where dtype=1 and ddatetime>= to_date(?,'yyyy-MM-dd') and ddatetime<=to_date(?,'yyyy-MM-dd') and timedelay<500";
//广东省雷达数据 本周 延时
sql8 = "select sum(t.shouldquantity) yingdao,sum(t.realquantity) shidao,sum(t.relay)/count(*) relay from t_data_statistics t where t.dsid=2 and t.statisticstime >= to_date(?,'yyyy-MM-dd') and t.statisticstime <= to_date(?,'yyyy-MM-dd')";
List<Object> dbList2 = new ArrayList<Object>();
dbList2.add(dbbartime2);
dbList2.add(dbbartime1);
List<Map<String, Object>> list5 = ybzxTwoService.queryListMapByList(sql5, dbList2, entityManager);
List<Map<String, Object>> list6 = ybzxTwoService.queryListMapByList(sql6, dbList2, entityManager);
List<Map<String, Object>> list7 = ybzxTwoService.queryListMapByList(sql7, dbList2, entityManager);
List<Map<String, Object>> list8 = ybzxTwoService.queryListMapByList(sql8, dbList2, entityManager);
float sql5relay = Float.parseFloat(list5.get(0).get("relay".toUpperCase()) == null ? "" : list5.get(0).get("relay".toUpperCase()).toString());
float sql6relay = Float.parseFloat(list6.get(0).get("relay".toUpperCase()) == null ? "" : list6.get(0).get("relay".toUpperCase()).toString());
float sql7relay = Float.parseFloat(list7.get(0).get("relay".toUpperCase()) == null ? "" : list7.get(0).get("relay".toUpperCase()).toString());
float sql8relay = Float.parseFloat(list8.get(0).get("relay".toUpperCase()) == null ? "" : list8.get(0).get("relay".toUpperCase()).toString());

DecimalFormat df = new DecimalFormat("0");//格式化小数,不足的补0,四舍五入
String relay1 = df.format(sql1relay);//返回的是String类型的
String relay2 = df.format(sql2relay);
String relay3 = df.format(sql3relay);
String relay4 = df.format(sql4relay);
String relay5 = df.format(sql5relay);
String relay6 = df.format(sql6relay);
String relay7 = df.format(sql7relay);
String relay8 = df.format(sql8relay);

net.sf.json.JSONArray jsonArray = new net.sf.json.JSONArray();
Map<String, List<Map<String, Object>>> allmap = new HashMap<String, List<Map<String, Object>>>();
List<Map<String, Object>> alllist = new ArrayList<Map<String, Object>>();
Map<String, Object> labelmap = new HashMap<String, Object>();
Map<String, Object> countmap = new HashMap<String, Object>();
Map<String, Object> timemap = new HashMap<String, Object>();
ArrayList<String> lb = new ArrayList<String>();
ArrayList<String> countlist = new ArrayList<String>();
ArrayList<String> timelist = new ArrayList<String>();

lb.add("深圳市遥测站");
countlist.add(relay1);
timelist.add(relay5);
lb.add("深圳市自动站");
countlist.add(relay2);
timelist.add(relay6);
lb.add("广东省自动站");
countlist.add(relay3);
timelist.add(relay7);
lb.add("广东省雷达数据");
countlist.add(relay4);
timelist.add(relay8);
countmap.put("countlist", countlist);
timemap.put("timelist", timelist);
labelmap.put("labellist", lb);
alllist.add(labelmap);
alllist.add(countmap);
alllist.add(timemap);
allmap.put("all", alllist);
jsonArray = UtilsJson.object2json(allmap);
response.getWriter().print(jsonArray);
}
} catch (Exception e) {
LOGGER.error("",e);
}
return null;
}


UtilsJson.java 类:.


package com.yuanls.uitl;
import java.io.File;
import java.io.FileOutputStream;
import java.util.List;


import net.sf.json.JSONArray;
import net.sf.json.JsonConfig;
import net.sf.json.util.CycleDetectionStrategy;


@SuppressWarnings("all")
public class UtilsJson {

public static JSONArray json(List list){

JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(java.sql.Timestamp.class, new DateJsonValueProcessor("yyyy-MM-dd HH:mm:ss"));
jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);  
JSONArray ja = JSONArray.fromObject(list,jsonConfig);

return ja;
}

public static JSONArray list2json(List list){
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(java.util.Date.class, new DateJsonValueProcessor("yyyy-MM-dd HH:mm:ss"));
jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);  
JSONArray ja = JSONArray.fromObject(list,jsonConfig);

return ja;
}

public static JSONArray object2json(Object object){
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(java.util.Date.class, new DateJsonValueProcessor("yyyy-MM-dd HH:mm:ss"));
jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);  
JSONArray ja = JSONArray.fromObject(object,jsonConfig);
return ja;
}


   /**
* 数据转换成JSON文件

* @param path
* @param array
*/
public static void writeJsonFile(String path, net.sf.json.JSONArray array) {
File file = new File(path);
try {
FileOutputStream fout = new FileOutputStream(file);
for (int j = 0; j < array.size(); j++) {
fout.write(array.getJSONObject(j).toString().getBytes());
fout.write("\n".getBytes());
}
fout.close();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}