Ajax与Json

    xiaoxiao2025-07-06  17

    1.简单介绍一下Json

     Json其实就是数据交换的格式

    Json 格式语法:

    xt-stroke-width: 0px; ">JSON 对象 { "name":"张三" , "age":22} JSON 数组 { "student": [ { "name":"张三" , "age":22 }, { "name":"李四" , "age":23 }, { "name":"王五" , "age":24 } ] } JSON 嵌套 { "student": [ { "name":"张三" , "age":22 ,"score":{"chinese":90,"math":100,"english":80} }, { "name":"李四" , "age":23 ,"score":{"chinese":70,"math":90, "english":90} }, { "name":"王五" , "age":24 ,"score":{"chinese":80,"math":60, "english":90} } ] } Json 串换成 Json 对象 var dataObj=eval("("+data+")");//转换为 json 对象

    Json常用Jar包:(json-lib)

    2.json与Ajax交互实例:

    (1):与JsonObject对象交互:

    1.后台数据打包成Json格式:

    public void getJsonObj(HttpServletRequest request, HttpServletResponse response)             throws ServletException, IOException {         response.setContentType("text/html;charset=utf-8");         PrintWriter out=response.getWriter();         JSONObject jsonObject=new JSONObject();         jsonObject.put("name", "xd");         jsonObject.put("age", 11);         out.println(jsonObject);         out.flush();         out.close();     }

    2.前端Ajax解析Json数据:

    function loadInfo(){         var xmlHttp;         if(window.XMLHttpRequest){             xmlHttp=new XMLHttpRequest();         }else{             xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");         }         xmlHttp.onreadystatechange=function(){             if(xmlHttp.readyState==4 && xmlHttp.status==200){                 alert(xmlHttp.responseText);                 var dataObj=eval("("+xmlHttp.responseText+")");                 alert(dataObj.name);                 alert(dataObj.age);                 document.getElementById("name").value=dataObj.name;                 document.getElementById("age").value=dataObj.age;             }         };         xmlHttp.open("get", "getAjaxInfo?action=jsonObject", true); //用来实现在后台同用一个Servlet                  xmlHttp.send();     }   

    (2)JsonArray与Ajax交互:

    1.后台数据打包成Json格式:

    public void getJsonArray(HttpServletRequest request, HttpServletResponse response)             throws ServletException, IOException {              response.setContentType("text/html;charset=utf-8");         PrintWriter out=response.getWriter();         JSONObject jsonObject=new JSONObject();         JSONArray jsonArray=new JSONArray();         JSONObject jsonObject2=new JSONObject();         jsonObject2.put("name", "xh");         jsonObject2.put("age", 12);         JSONObject jsonObject3=new JSONObject();         jsonObject3.put("name", "xd");         jsonObject3.put("age", 11);         jsonArray.add(jsonObject2);         jsonArray.add(jsonObject3);         jsonObject.put("studentlist",jsonArray);         out.println(jsonObject);         out.flush();         out.close();     }

    2.前端Ajax解析Json数据:

    function loadInfo2(){         var xmlHttp;         if(window.XMLHttpRequest){             xmlHttp=new XMLHttpRequest();         }else{             xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");         }         xmlHttp.onreadystatechange=function(){             if(xmlHttp.readyState==4 && xmlHttp.status==200){                 alert(xmlHttp.responseText);                 var dataObj=eval("("+xmlHttp.responseText+")");                 var st=document.getElementById("studentTable");                 alert(dataObj.students.length);                 var newTr; // 行                 var newTd0; // 第一列                 var newTd1; // 第二列                 var newTd2; // 第三列                 for(var i=0;i<dataObj.students.length;i++){                     var student=dataObj.students[i];                     newTr=st.insertRow();                     newTd0=newTr.insertCell();                     newTd1=newTr.insertCell();                     newTd2=newTr.insertCell();                     newTd0.innerHTML=student.name;                     newTd1.innerHTML=student.age;                     newTd2.innerHTML="语文:"+student.score.chinese+",数学:"+student.score.math+",英语:"+student.score.english;                 }             }         };         // xmlHttp.open("get", "getAjaxInfo?action=jsonArray", true);         xmlHttp.open("get", "getAjaxInfo?action=jsonNested", true);         xmlHttp.send();     }

    转载请注明原文地址: https://ju.6miu.com/read-1300426.html
    最新回复(0)