关于JSON的使用
在页面端,参数可以组装成JSON的格式,然后通过Ext.encode(str),变成字符串,作为参数发送请求。
如:param = ["a":"123","b":"[4,5,6]"]
url:XXX?param=Ext.encode(param);
在后台,JSON对象的处理有多个jar可选,我们选择org.json.simple包,包括几个常用的对象:
JSONValue :提供将String解析为JSON的能力,如将上述的param参数从request中解析,并转为JSON对象。
String param = request.getParameter("param");
Map<String,Object> jsonMap = (Map<String,Object>) JSONValue.parse(param);
parse方法可以把符合JSON格式的String字符串,递归解析成Object,并以Map的形式存放,因为json天然有key-value的形式,符合map的存储。
解析后的结果是这样的map:
key:a , value :123
key:b , value :[456]
然后通过jsonMap.get(key)的方法获取对象对应的值,这里的值有2种形式,一种是String,另一种是List<String>,这个取决于存入的类型,如果key对应的value是String,则为String(如123),如果是数组,则为list(如4,5,6)
String param = request.getParameter("param");
Map<String,Object> jsonMap = (Map<String,Object>) JSONValue.parse(param);
String version = (String) jsonMap.get("version");
//获取表头
List<String> headers = (List<String>) jsonMap.get("tableHead");
后台返回给前台时,可以把JSON对象转化成JSON字符串,方法如下:
JSONArray jsonArray = new JSONArray();
jsonArray.toJSONString();
或者:
JSONObject jsonobj = new JSONObject();
jsonobj.toJSONString()