JSON 学习

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



原文地址:https://www.cnblogs.com/java20130726/p/3218291.html