JSON 是一种数据格式,类似于XML。用于在网络上传送数据。
在Java 代码中使有JSON 格式的数据传送方式,需要添加对JSON的支持。
添加json2.js 。解析Java 返回到JSP 页面的数据。可以是对象Object .还可以是 ArrayList<Object>。
json2.js 下载地址: http://www.JSON.org/json2.js
JSON 的格式:
{"id":0,"name":"liucheng","pwd":"123"}
在Java 代码中使用输入流把JSON 对象输出到页面中。Java 代码如下。
JSONObject user = new JSONObject(); user.element("user",new User(userName,userPwd)); resp.getWriter().print(user);到页面的格式是:
{"user":{"id":0,"name":"liucheng","pwd":"123"}}
以key:user value:object 的结果
解析JSON 对象。首先得把json2.js 引入到JSP 页面中。代码如下:
var user = JSON.parse(xhr.responseText);//解析 单个对象 for(var i in user){ document.getElementById("msg").innerHTML="用户名:"+user[i].name+" 密码:"+user[i].pwd; }
可以是传送集合对象。Java代码如下
City city = new City("bj","北京"); City city2 = new City("tx","通县"); City city3 = new City("cp","昌平"); List listCity = new ArrayList(); listCity.add(city); listCity.add(city2); listCity.add(city3); JSONArray ja = new JSONArray(); ja.add(listCity); PrintWriter out = resp.getWriter(); out.print(ja);
在JSP 页面中 JSON 传送的格式
[ {"cityCnName":"北京","cityId":1}, {"cityCnName":"天津","cityId":2} ]
JSP 解析JSONArray 娄据。
var city = document.getElementById("city"); city.options.length=0;//清空 options var city2 = JSON.parse(xhr.responseText); for(var i in city2)//i 是获取Array 中的第i个对象 { for(var j in city2[i])// j 是获取Array 中第i个对象中属性值 { opt = new Option(city2[i][j].CName,city2[i][j].CValue); city.appendChild(opt); } }