<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    迷失北京

    BlogJava 聯系 聚合 管理
      60 Posts :: 0 Stories :: 13 Comments :: 0 Trackbacks

          今天稍微學習了一下Json,JSON (JavaScript Object Notation) 是一種輕量級的數據交換格式。 易于人閱讀和編寫。同時也易于機器解析和生成。 JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 這些特性使JSON成為理想的數據交換語言。

    JSON建構于兩種結構:

    • “名稱/值”對的集合(A collection of name/value pairs)。不同的語言中,它被理解為對象(object) ,紀錄(record),結構(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關聯數組 (associative array)。
    • 值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數組(array)。

    這些都是常見的數據結構。事實上大部分現代計算機語言都以某種形式支持它們。這使得一種數據格式在同樣基于這些結構的編程語言之間交換成為可能。

    JSON具有以下這些形式:

    對象是一個無序的“‘名稱/值’對”集合。一個對象以“{”(左括號)開始,“}”(右括號)結束。每個“名稱”后跟一個“:”(冒號);“‘名稱/值’ 對”之間使用“,”(逗號)分隔。

          好了還是不說廢話了直接上例子吧!!這個小demo的設計是這樣的,index.jsp頁面訪問服務器端的servlet,servlet向index.jsp傳遞數據,傳遞的數據時Json格式的,呵呵...廢話,如果不是Json格式的數據我寫這篇博客就相當于蒙騙觀眾了!

    index.jsp端的代碼(先易后難的順序):

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path
    = request.getContextPath();
    String basePath
    = request.getScheme() + "://"
    + request.getServerName() + ":" + request.getServerPort()
    + path + "/";
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <base href="<%=basePath%>">
    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css" mce_href="styles.css">
    -->
    <mce:script type="text/javascript" src="js/jquery-1.3.2.js" mce_src="js/jquery-1.3.2.js"></mce:script>
    <mce:script type="text/javascript" src="js/login.js" mce_src="js/login.js"></mce:script>
    </head>
    <body>
    <table>
    <tr id="head">
    <td>lastname</td>
    <td>firstname</td>
    <td>address</td>
    </tr>
    <tr id="tr0">
    <td id="td0"></td>
    <td id="td1"></td>
    <td id="td2"></td>
    </tr>
    <tr id="tr1">
    <td id="td0"></td>
    <td id="td1"></td>
    <td id="td2"></td>
    </tr>
    <tr id="tr2">
    <td id="td0"></td>
    <td id="td1"></td>
    <td id="td2"></td>
    </tr>
    </table>
    </body>
    </html>


    然后是兩個bean程序:Person和Address。這里設計這兩個類主要是更好的體現Json傳遞數據的方式和傳遞的數據格式

    package com.wk;
    public class Person {
    private String firstName;
    private String lastName;
    private Address address;
    public Person() {
    super();
    }
    public Person(String firstName, String lastName, Address address) {
    super();
    this.firstName = firstName;
    this.lastName = lastName;
    this.address = address;
    }
    public String getFirstName() {
    return firstName;
    }
    public void setFirstName(String firstName) {
    this.firstName = firstName;
    }
    public String getLastName() {
    return lastName;
    }
    public void setLastName(String lastName) {
    this.lastName = lastName;
    }
    public Address getAddress() {
    return address;
    }
    public void setAddress(Address address) {
    this.address = address;
    }
    }
    package com.wk;
    public class Address {
    private int id;
    private String detail;
    public Address() {
    super();
    }
    public Address(int id, String detail) {
    super();
    this.id = id;
    this.detail = detail;
    }
    public int getId() {
    return id;
    }
    public void setId(int id) {
    this.id = id;
    }
    public String getDetail() {
    return detail;
    }
    public void setDetail(String detail) {
    this.detail = detail;
    }
    }


    servlet代碼:

    package com.servlet;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.ArrayList;
    import java.util.List;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import com.wk.Address;
    import com.wk.Person;
    public class PersonServlet extends HttpServlet{
    private static final long serialVersionUID = 1L;
    static StringBuffer bf;
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
    resp.setContentType(
    "text/html;charset=utf-8");
    List
    <Person> persons = new ArrayList<Person>();
    PrintWriter
    out = resp.getWriter();

    Person person1
    = new Person();
    Address a1
    = new Address();
    a1.setId(
    1);
    a1.setDetail(
    "河北省");
    person1.setFirstName(
    "");
    person1.setLastName(
    "");
    person1.setAddress(a1);
    persons.add(person1);

    Person person2
    = new Person();
    Address a2
    = new Address();
    a2.setId(
    2);
    a2.setDetail(
    "江西省");
    person2.setFirstName(
    "");
    person2.setLastName(
    "");
    person2.setAddress(a2);
    persons.add(person2);

    Person person3
    = new Person();
    Address a3
    = new Address();
    a3.setId(
    1);
    a3.setDetail(
    "湖南省");
    person3.setFirstName(
    "");
    person3.setLastName(
    "");
    person3.setAddress(a3);
    persons.add(person3);

    bf
    = new StringBuffer();

    /* 組裝成json格式的字符串
    * {"person":[
    * {"firstname":"", "lastNmae":"", "address": {"id":"", "detail":""}},
    * ]}
    */
    bf.append(
    "{\"person\":[");
    for(Person person : persons) {
    bf.append(
    "{\"firstname\":\"").append(person.getFirstName()).append("\",\"").
    append(
    "lastname\":\"").append(person.getLastName()).append("\",").
    append(
    "\"address\":").append("{\"id\":\"").append(person.getAddress().getId()).append("\",\"").
    append(
    "detail\":\"").append(person.getAddress().getDetail()).append("\"").append("}},");
    }
    //將最后一個逗號去掉
    int length = bf.length();
    String newStr
    = bf.substring(0, length-1);
    bf
    = new StringBuffer();
    bf.append(newStr);

    bf.append(
    "]}");
    out.println(bf);
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
    this.doGet(req, resp);
    }

    }


    下面的代碼就是Jquery如何解析Json數據了,也是這一個demo的核心代碼了:

    $(document).ready(function() {
    $(
    "table").css("border-color", "lightblue").css("border-style", "solid");
    $(
    "#head").css("background-color", "lightblue");
    $.ajax({
    // 后臺處理程序
    url : "Json",
    // 數據發送方式
    type : "post",
    // 接受數據格式
    dataType : "json",
    timeout :
    20000,// 設置請求超時時間(毫秒)。
    // 請求成功后回調函數。
    success : function(dataObj) {
    var member
    = eval(dataObj);
    // alert(member.person[1].firstname);
    $(dataObj.person).each(function(i, per) {
    $(
    "#tr" + i).find("#td0").html(per.lastname);
    $(
    "#tr" + i).find("#td1").html(per.firstname);
    $(
    "#tr" + i).find("#td2")
    .html(per.address.detail);
    });
    }
    });
    });


    再貼一個運行效果吧!!

    呵呵....共同學習共同進步!!!!!!!

    posted on 2011-03-20 17:48 王康 閱讀(265) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲精品国产精品乱码不卡√| 国产成人免费A在线视频| 亚洲欧洲日产国码久在线观看| 狠狠躁狠狠爱免费视频无码| 一本色道久久综合亚洲精品| 中国一级全黄的免费观看| 亚洲午夜国产精品无码| 秋霞人成在线观看免费视频| 亚洲成色在线综合网站| 在线免费观看国产| 亚洲人成网站色在线观看| 精品国产免费观看久久久| 小说专区亚洲春色校园| 亚洲综合久久夜AV | a国产成人免费视频| 亚洲欧洲日产v特级毛片| 成人无遮挡裸免费视频在线观看| 亚洲日韩AV一区二区三区中文 | 猫咪免费人成网站在线观看入口| 亚洲AV无码一区二区三区国产| 一级毛片大全免费播放| 亚洲一区二区在线免费观看| 国产成人yy免费视频| 亚洲欧美国产国产一区二区三区| 免费一级毛片清高播放| 国产无遮挡无码视频免费软件 | 国产精品亚洲片夜色在线| 波多野结衣久久高清免费| EEUSS影院WWW在线观看免费| 亚洲最大成人网色| 日韩在线看片免费人成视频播放| 四虎一区二区成人免费影院网址| 亚洲国产一区二区三区青草影视| AA免费观看的1000部电影| 一道本在线免费视频| 久久久亚洲裙底偷窥综合| 国产免费人人看大香伊| 99久久99热精品免费观看国产| 亚洲AV无码一区二区三区电影 | 国产一区二区三区免费视频| 华人在线精品免费观看|