微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Ajax&Json —— Json

1. Json 引入

基于JS 的一种轻量级的数据交换格式!“key”:“value”的书写格式

  • JavaScript 对象表示法(JavaScript Object Notation)。
  • JSON 是存储和交换文本信息的语法。类似 XML。
  • JSON 比 XML 更小、更快,更易解析。

 

2. Json 格式语法

//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} },"age":23,"score":{"chinese":70,"math":90,"english":90} },"age":24,"score":{"chinese":80,"math":60,"english":90} }   ] }
//把 Json 串换成 Json 对象 var dataObj=eval("("+data+")");//转换为 json 对象

 

 

3. Ajax&Json 交互简单实例

  1. 获取Json 对象:Json 第三方 jar 包引入: Json-lib
    private void getJsonObject(HttpServletRequest request,HttpServletResponse response)
                throws servletexception,IOException {
        PrintWriter out=response.getWriter();
        // String resultJson="{\"name\":\"张三\",\"age\":22}"; //引入jar包
        JSONObject resultJson=new JSONObject();
    //引入jar包 resultJson.put(
    "name","张三"); resultJson.put("age",22); out.println(resultJson); out.flush(); out.close(); }
    <script type="text/javascript">
        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+")");  //将Json串转换为Json对象
                    document.getElementById("name").value=dataObj.name;
                    document.getElementById("age").value=dataObj.age;
                }
            };
            xmlHttp.open("get","getAjaxInfo?action=jsonObject",true);        
            xmlHttp.send();
        }
    </script>

     

  2. 获取Json 数组
    private void getJsonArray(HttpServletRequest request,HttpServletResponse response)
            throws servletexception,IOException {
        PrintWriter out=response.getWriter();
        JSONObject resultJson=new JSONObject();
        JSONArray jsonArray=new JSONArray();
        JSONObject jsonObject1=new JSONObject();
        jsonObject1.put("name","张三");
        jsonObject1.put("age",22);
        JSONObject jsonObject2=new JSONObject();
        jsonObject2.put("name","李四");
        jsonObject2.put("age",23);
        JSONObject jsonObject3=new JSONObject();
        jsonObject3.put("name","王五");
        jsonObject3.put("age",24);
        jsonArray.add(jsonObject1);
        jsonArray.add(jsonObject2);
        jsonArray.add(jsonObject3);
        
        resultJson.put("students",jsonArray);
        out.println(resultJson);
        out.flush();
        out.close();
    }

     

  3. 获取Json 嵌套:无限嵌套
    private void getJsonnested(HttpServletRequest request,22);
        
        JSONObject scoreObject1=new JSONObject();
        scoreObject1.put("chinese",90);
        scoreObject1.put("math",100);
        scoreObject1.put("english",80);
        jsonObject1.put("score",scoreObject1);
        
        JSONObject jsonObject2=new JSONObject();
        jsonObject2.put("name",23);
        
        JSONObject scoreObject2=new JSONObject();
        scoreObject2.put("chinese",70);
        scoreObject2.put("math",90);
        scoreObject2.put("english",90);
        jsonObject2.put("score",scoreObject2);
        
        JSONObject jsonObject3=new JSONObject();
        jsonObject3.put("name",24);
        
        JSONObject scoreObject3=new JSONObject();
        scoreObject3.put("chinese",80);
        scoreObject3.put("math",60);
        scoreObject3.put("english",90);
        jsonObject3.put("score",scoreObject3);
        
        jsonArray.add(jsonObject1);
        jsonArray.add(jsonObject2);
        jsonArray.add(jsonObject3);
        
        resultJson.put("students",jsonArray);
        out.println(resultJson);
        out.flush();
        out.close();
    }
    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); //获取Json 数组
        xmlHttp.open("get","getAjaxInfo?action=jsonnested",true);   //获取Json 嵌套
        xmlHttp.send();
    }
  4. @H_968_404@

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐