`

Json简介

阅读更多
1. Json引入

JSON:JavaScript对象表示法(JavaScriptObjectNotation)。
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}},
        {"name":"李四","age":23,"score":{"chinese":70,"math":90,"english":90}},
        {"name":"王五","age":24,"score":{"chinese":80,"math":60,"english":90}}
    ]
}
把Json串换成Json对象
vardataObj = eval("("+data+")"); // 转换为json对象


3. Json第三方jar包引入

Json-lib


4. Ajax&Json交互

导入jar包

commons-beanutils-1.7.0.jar
commons-collections-3.2.jar
commons-lang-2.4.jar
commons-logging-1.0.4.jar
ezmorph-1.0.3.jar
json-lib-2.2.3-jdk15.jar

GetAjaxInfoServlet.java

package com.andrew.web;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class GetAjaxInfoServlet extends HttpServlet{

    private static final long serialVersionUID = 1L;

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        this.doPost(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        String action=request.getParameter("action");
        if("jsonObject".equals(action)){
            this.getJsonObject(request, response);
        }else if("jsonArray".equals(action)){
            this.getJsonArray(request, response);
        }else if("jsonNested".equals(action)){
            this.getJsonNested(request, response);
        }
        
    }
    
    private void getJsonObject(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        PrintWriter out=response.getWriter();
        // String resultJson="{\"name\":\"张三\",\"age\":22}";
        JSONObject resultJson=new JSONObject();
        resultJson.put("name", "张三");
        resultJson.put("age", 22);
        out.println(resultJson);
        out.flush();
        out.close();
    }
    
    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();
    }
    
    private void getJsonNested(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 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", "李四");
        jsonObject2.put("age", 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", "王五");
        jsonObject3.put("age", 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();
    }
}

web.xml

<servlet>
      <servlet-name>getAjaxInfoServlet</servlet-name>
      <servlet-class>com.andrew.web.GetAjaxInfoServlet</servlet-class>
</servlet>
<servlet-mapping>
      <servlet-name>getAjaxInfoServlet</servlet-name>
      <url-pattern>/getAjaxInfo</url-pattern>
</servlet-mapping>

ajax.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<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+")");
                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);
        xmlHttp.send();
    }
    
    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();
    }
</script>
</head>
<body>
<div style="text-align: center;">
    <div><input type="button" onclick="loadInfo()" value="Ajax获取信息"/>&nbsp;&nbsp;姓名:<input type="text" id="name" name="name" />&nbsp;&nbsp;年龄:<input type="text" id="age" name="age" /></div>
    <div style="margin-top: 20px;">
        <input type="button" onclick="loadInfo2()" value="Ajax获取信息2"><br/>
        <table id="studentTable" align="center" border="1px;" cellpadding="0px;">
            <tr>
                <th>姓名</th><th>年龄</th><th>得分</th>
            </tr>
        </table>
    </div>
</div>
</body>
</html>

http://localhost:8080/HeadFirstAjaxJsonChap03/ajax.jsp
获取Ajax信息
张三
22
获取Ajax信息2
张三    22    语文:90,数学:100,英语:80
李四    23    语文:70,数学:90,英语:90
王五    24    语文:80,数学:60,英语:90
分享到:
评论

相关推荐

    json简介及基础教程及特点阐述.rar

    jsonjson简介及基础教程及特点阐述.rarjson简介及基础教程及特点阐述.rarjson简介及基础教程及特点阐述.rarjson简介及基础教程及特点阐述.rarjson简介及基础教程及特点阐述.rarjson简介及基础教程及特点阐述.rarjson...

    文档JSON简介

    JSON文档,具体介绍如何在代码中调用,简单实用

    JSON简介,JSONObject,够5个汉字了吧

    JSON简介将描述JSON优势,如何生成JSON数据,此为上一个资源JSON jar包补充。资源分为0哟,亲

    json应用jar包.rar,JSON简介

    json应用jar包包含:json-lib-2.2.2-jdk15.jar commons-lang-2.4.jar commons-logging-1.1.jar........ JSON简介.doc

    JSON简介 2.2.1 jdk.jar

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,但也使用了类似于C家族语言(包括C、C++、C#、Java、JavaScript等)的习惯,使得这些语言的程序员能很容易地阅读...

    json简介,json与xml,json-rpc

    json对象,json描述方式,json与xml,json-rpc

    Json简介.docx

    JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式,因其简洁和高效而广泛应用于Web服务和应用程序之间的数据传输。JSON设计的目标是人可读且机器易解析,其结构基于两种基本元素:名称/值对的集合...

    JSON简介JSON简介

    JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式,它以文本形式存在,同时独立于语言,但与编程语言如JavaScript、C++、Java、Python等有着良好的兼容性。JSON的设计目标是使数据交换变得简单易...

    Struts2处理json简介及注意事项

    在处理JSON(JavaScript Object Notation)时,Struts2提供了强大的支持,使得前后端的数据交换更加便捷。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它被广泛应用于Ajax(异步...

    JSON简介以及用法汇总

    JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式,因其简洁和高效而广泛应用于网络数据传输。它的设计灵感来源于JavaScript语法,但JSON格式并非JavaScript的一部分,而是独立的标准,遵循RFC ...

    JSON简介:什么是JSON?

    JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式,主要用于在不同的系统之间,尤其是前后端之间,高效地传递数据。它基于JavaScript的一个子集,设计时目标是尽可能地简洁,使得人类可以直接阅读...

    Android处理JSON数据-JSON简介.pdf

    JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式。它以其简洁、高效的特点,广泛应用于网络数据传输,特别是在Android开发中。JSON不是一种编程语言,而是以JavaScript语法为基础,但它是独立于...

    JSON简介与格式

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于网络服务和应用程序之间的数据传输。它的设计目标是让人类能轻松阅读和编写,同时也方便机器解析和生成。JSON基于JavaScript编程语言的一...

    JSON简介:数据交换的灵活方式.txt

    json

    JSON简介:数据交换的轻量级标准.txt

    json

    Jquery.json.js

    **jQuery与JSON简介** jQuery是一个高效、简洁且易用的JavaScript库,它极大地简化了JavaScript编程,使得DOM操作、事件处理、Ajax交互等任务变得更加容易。JSON(JavaScript Object Notation)则是一种轻量级的...

    用JSON替换XML

    ### JSON简介 JSON是一种轻量级的数据交换格式,它基于JavaScript的一个子集。尽管如此,JSON并不仅仅用于JavaScript环境,它独立于语言,可以被多种编程语言解析和生成。这使得JSON成为跨平台数据交换的理想选择。...

Global site tag (gtag.js) - Google Analytics