后台传一个lis给前台,使用ajax、json格式

本文介绍了一种后台数据收集方法,通过Java代码从数据库中提取银行数据,并将其转换为图表展示所需的数据格式。前端使用AJAX进行同步请求,接收JSON格式的数据,用于绘制数据图表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

后台

	//数据源图表
	public void dataCollection(){
		List<BankData> dataCollectionList = new ArrayList<BankData>();
		Map<String,Object> map = new HashMap<String,Object>();
		Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
        String tj_date = sdf.format(date);
		map.put("tj_date", tj_date);
		List<Object> list = _assistAdpater.selectAllByMapParam("TJ_LBDATA_selectCount", map, "bigdbSqlMapClient");
		//模拟数据start
		for (int i = 0; i < list.size(); i++) {
			BankData b = (BankData)list.get(i);
			if(Math.round(b.getCountsum()/10000) ==0){
				b.setCountsum((long)1);
			}else{
				b.setCountsum((long)Math.round(b.getCountsum()/10000));
			}
			dataCollectionList.add(b);
		}
		//模拟数据end
		JSONObject json = new JSONObject();
		json.put("dataCollectionList", dataCollectionList);
		this.renderText(json.toString());
		
	}

前台

	$.ajax({
            url:'/display/ShowDataAction_dataCollection.jspx',
    		dataType: 'json',
    		async: false,              //使用的同步调用
            success:function(result) {
            	for(var i=0;i<result["dataCollectionList"].length;i++){
            		data.push({value: result["dataCollectionList"][i].countsum,name: ''+result["dataCollectionList"][i].deptname+' : '+result["dataCollectionList"][i].countsum+'万'},);
            	}
            }
        })
在Java中,如果你想通过URL一个List<Map<String, Object>>类型的集合,通常会序列化这个数据,因为URL不是直接支持复杂数据结构的。你可以选择JSON、XML或者其他序列化库如Gson、Jackson等来进行转换。 以下是一个简单的步骤: 1. 首先,你需要将Map列表转换为JSON字符串。例如,使用Gson库: ```java import com.google.gson.Gson; import java.util.List; List<Map<String, Object>> dataList = ...; // 假设这是你要发送的数据 Gson gson = new Gson(); String json = gson.toJson(dataList); ``` 2. 然后,你可以将这个JSON字符串作为查询参数附在URL上。如果你需要POST请求,可以直接在body中发送;如果是GET请求,可以添加到URL路径(不推荐,因为它有长度限制)或者使用查询字符串(query string): - POST: ```java URL url = new URL("http://example.com/api"); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); conn.setDoOutput(true); try (OutputStream os = conn.getOutputStream()) { byte[] jsonData = json.getBytes(StandardCharsets.UTF_8); os.write(jsonData); } ``` - GET (如果URL允许,仅适用于小量数据): ```java String encodedJson = URLEncoder.encode(json, "UTF-8"); // 对JSON进行URL编码 URL url = new URL("http://example.com/api?data=" + encodedJson); ``` 3. 接收端,你需要处理接收到的URL参数并反序列化回List<Map<String, Object>>。同样可以用Gson或其他库来完成: ```java if (method.equals("GET")) { String receivedJson = urlQueryParams.get("data"); List<Map<String, Object>> deserializedData = gson.fromJson(receivedJson, new TypeToken<List<Map<String, Object>>>(){}.getType()); } // 或者对于POST,从输入流中读取JSON ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值