拼接json字符串

    之前写了一篇对json的理解,理解是理解了,结果做项目的时候还是不会用,所以在实践之后再来写这篇对json的应用。

应学长要求,做一个表格显示,点击按钮,从后台将数据取出并将之传到前台来显示,我觉得是一个很典型的json交互的应用。如图

首先,js响应函数中,将前台接受到的type,year,断面名称拼接成json格式,用ajax传入到xzdm.action里进行处理响应,返回数据库中的信息。如图
var type=$("#xztype option:selected").val();
//  	var zhenqu=$("#xzzhenqu option:selected").val();
    	var year=$("#xzyear option:selected").val();
    	
		function getjson() {
		    var jsonStr = "{"; // json格式开始
		    jsonStr+="\"type\":\""+type+
		    		 "\",\"dmmc\":\""+dmmc+
		    		 "\",\"hlmc\":\""+hlmc+
		    		 "\",\"year\":\""+year+
		    		 "\"}"; 
		    var jsonObj = jQuery.parseJSON(jsonStr);
		    return jsonObj;
		}
        $.post("xzdm.action",getjson(),function(result){


接着就是写action的时间了。但是在写action中你首先要知道你要返回的json应该是什么样子的,应该包含两个信息,一个是横轴X的数据,一个是纵轴Y的数据。

{
	"x":[
		"第1季度",
		"第2季度",
		"第3季度",
		"第4季度"
	],
	"series":[{
		
		"data":
		[
		1.01,
		0.712
		]
		"name":"aq",
	}]
	
}
将Java数据转换成json数据有两种办法,一个是将Java对象直接转换成json对象,一个是直接拼接的方法。这次使用的是简单暴力的拼接方法,原因嘛。。。。因为里面有多个数组,使用了转json对象的方法失败了,等回去研究好在写转对象的方法。
 public void xzdm(HttpServletRequest request,HttpServletResponse response,XzdmCustom example,String type)
    {
    	XzdmExample xzdmExample= toexampleservice.xzdmtoexample(example);
    	xzdmExample.setOrderByClause("season");
    	List<Xzdm> xzdms=xzdmservice.selectByExample(xzdmExample);
        String json ="{\"x\":[";
        for(int i=0;i<xzdms.size();i++){
        	json+="\"第"+xzdms.get(i).getSeason()+"季度\",";
        }
        json=json.substring(0,json.length()-1);
        json+="],\"series\": [{\"data\": [";
        if(type.equals("ad")){
            for(int i=0;i<xzdms.size();i++){      
        		json+=xzdms.get(i).getAd()+",";
            }
            json=json.substring(0,json.length()-1);
            json+="],\"name\": \"氨氮\"}]}";
        }
        else if(type.equals("zl")){
            for(int i=0;i<xzdms.size();i++){
        		json+=xzdms.get(i).getZl()+",";
            }
            json=json.substring(0,json.length()-1);
            json+="],\"name\": \"总磷\"}]}";
        }
拼接要注意的地方只有一个,那就是转义字符" \",一不小心拼接就出错了。所以我想了一个对自己比较有用的方法,那就是把格式在记事本上写出来,然后这样
{
	\"x\":[
		\"第1季度\",
		"第2季度",
		"第3季度",
		"第4季度"
	],
	\"series\":[{
		
		\"data\":
		[
		1.01,
		0.712
		]
		\"name\":\"aq\",
	}]
	
}
将要加转意字符的地方写上去。看着写,一般就不会出错啦



版权声明:本文为qq_37891064原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。