關於jsp中使用jquery數據格式json

弄asp和php傳輸json格式都沒有太大問題,但是昨天弄jsp的就讓我很鬱悶,網上下了jar文件,引入,但老是出問題。今天自己寫了個類,與大家分享。

1.新建類json

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package JSON;
/**
 *
 * @author ZMR
 */
public class json {
     private StringBuilder sb; //構建字符串
     public json(StringBuilder sbs)
     {
         sb=sbs;
     }
     public void BeginWriteObject()
     {
          sb.append("{");
     }
     public void EndWriteObject()
     {
         sb.setCharAt(sb.lastIndexOf(","), '}');
     }
     public void WriteProperties(String name)
     {
         sb.append("'"+name+"'"+":");
     }
     public void WriteValue(Object value)
     {
         sb.append("'"+value+"'"+",");
     }
     public void BeginWriteArray()
     {
         sb.append("[");
     }
     public void EndWrieArray()
     {
         int index=sb.lastIndexOf(",");
         sb.replace(sb.lastIndexOf(","),index+1,"],");
     }
     public void WriteSeparated()
     {
         sb.append(",");
     }
}
2.調用 ajax.jsp,處理數據頁

<%--
    Document   : ajax
    Created on : 2010-12-25, 14:35:02
    Author     : ZMR
--%>

<%@page contentType="text/plain; charset=UTF-8"
language="java"
import="java.io.*,java.net.*,java.util.*"
buffer="8kb"
session="false"
autoFlush="true"
%>
<%@page import="java.io.IOException"%>
<%@page import="java.io.PrintWriter"%>
<%@page import="JSON.json"%>


        <%
        StringBuilder sb=new StringBuilder();
        json jquery=new json(sb);
        jquery.BeginWriteObject();
        jquery.WriteProperties("Name");
        jquery.WriteValue("張明瑞");
        jquery.WriteProperties("rows");
        jquery.BeginWriteArray();
        for(int i=0; i<3; i++)
        {
            jquery.BeginWriteObject();
            jquery.WriteProperties("key");
            jquery.WriteValue(i);
            jquery.WriteProperties("value");
            jquery.WriteValue(i*3);
            jquery.EndWriteObject();
            jquery.WriteSeparated();
        }
        jquery.EndWrieArray();
        jquery.EndWriteObject();
        String d="{Name:'Truly', rows:[{key:'1',value:'0'},{key:'6101',value:'北京市'},{key:'6102',value:'天津市'}]}";
         PrintWriter pw = response.getWriter();
         pw.write(sb.toString());


%>
   3.調用index.jsp

<%--
    Document   : index
    Created on : 2010-12-25, 10:47:26
    Author     : ZMR
--%>

<%@page contentType="text/html" 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>JSP Page</title>
        <script type="text/javascript" src="scripts/jquery-1.4.2.js"></script>
        <script language="javascript" type="text/javascript">
     $(document).ready(function() {
           $.ajax({
                     url: "ajax.jsp",
                    // dataType:'json', //很重要!!!.      預期服務器返回的數據類型
                     error:function(data){
                         alert("error");
                     },
                     success:function(data){
                        // alert(d.account.toString());
                       var json= eval('('+data+')');
                       var html="<h1>"+json.Name+"</h1>";
                       var rows=json.rows;
                       for(var i=0; i<rows.length; i++){
                           html+="鍵值:"+rows[i].key+"值:"+rows[i].value+"<br/>";
                       }
                       $("body").append(html);
                     }
                 });
     });
      
        </script>
    </head>
    <body>
        <h1>Hello World!</h1>

    </body>
</html>
哈哈~~~OK!

小體會:有時候網上的多種方法反而把問題複雜化了,瞭解了json數據的格式,自己也可以寫了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章