关于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()
  

posted @ 2013-03-18 15:18  无尘24  阅读(2595)  评论(0编辑  收藏  举报