浏览 421 次
|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2007-12-14
http://www.json.org/ 里面肯定能找到你想要的东西 。。简单的描述下我使用的情况:如果有错误的地方希望大家指出。后续改正。
var _c="123"; var ob={ a:"a", b:"b", c:_c } 这里是定义了一个ob的对象。里面的属性都是 key-value 这样对应的 。也可以这样 var obj={} 定义一个空的对样。里面可以动态赋值。最重要的功能就是运用json 可以针对大对象数据的查询和反写。大家都用ajax查询数据的多吧。返回是大对象的情况下是否都是传的list 等 这样的东西到jsp页面遍历出来呢。通过用json 可以实现大对象的传递。网上找的一个eg: 页面:jsonExample.jsp <%@ page contentType="text/html; charset=GBK" %> <html> <head> <title> JSON示例 </title> <script type="text/javascript" src="zxml.src.js"></script> <script type="text/javascript" src="json.js"></script> <script type="text/javascript"> var xmlHttp; //创建对象 function createXMLHttpRequest(){ xmlHttp = zXmlHttp.createRequest(); } function doJSON(){ //得到Car对象 var car = getCarObject(); //用JSON字符串化car对象 var carAsJSON = car.toJSONString(); alert("汽车对象JSON化为:\n" + carAsJSON); var url = "JSONExample?timeStamp=" + new Date().getTime(); //创建对象 createXMLHttpRequest(); xmlHttp.open("POST",url,true); xmlHttp.onreadystatechange = handleStateChange; xmlHttp.setRequestHeader("Content-Type","application/x-www-form.urlencoded"); xmlHttp.send(carAsJSON); } //回调方法 function handleStateChange(){ if (xmlHttp.readyState == 4){ if (xmlHttp.status == 200){ parseResults(); } } } //解析结果 function parseResults(){ var responseDiv = document.getElementById("serverResponse"); if (responseDiv.hasChildNodes()){ responseDiv.removeChild(responseDiv.childNode[0]); } var responseText = document.createTextNode(xmlHttp.responseText); responseDiv.appendChild(responseText); } //得到Car对象 function getCarObject(){ return new Car("Dodge","Coronet R/T",1968,"yellow"); } //Car构造函数 function Car(make,model,year,color){ this.make = make; this.model = model; this.year = year; this.color = color; } </script> </head> <body> <br /><br /> <form action="#"> <input type="button" value="发送JSON数据" onclick="doJSON();"/> </form> <h2> 服务器响应: </h2> <div id="serverResponse"> </div> </body> </html> 服务器:JSONExample.java package ajaxbook.chap4; import java.io.*; import java.net.*; import java.text.ParseException; import javax.servlet.*; import javax.servlet.http.*; import org.json.JSONObject; public class JSONExample extends HttpServlet { //处理Post方法 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String json = readJSONStringFromRequestBody(request); //使用JSON绑字Ajax对象 JSONObject jsonObject = null; try { jsonObject = new JSONObject(json); } catch (ParseException pe) { System.out.println("ParseException: " + pe.toString()); } //返回输出结果 String responseText = "You have a " + jsonObject.getInt("year") + " " + jsonObject.getString("make") + " " + jsonObject.getString("model") + " " + " that is " + jsonObject.getString("color") + " in color."; response.setContentType("text/xml"); response.getWriter().print(responseText); } //得到参数 private String readJSONStringFromRequestBody(HttpServletRequest request) { StringBuffer json = new StringBuffer(); String line = null; try { BufferedReader reader = request.getReader(); while ( (line = reader.readLine()) != null) { json.append(line); } } catch (Exception e) { System.out.println("Error reading JSON string: " + e.toString()); } return json.toString(); } } 到第一行的网上去下载json和java的源文件。和json2.js 才能测试这个东西。。。。。 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |


