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);
}
}