关于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数据的格式,自己也可以写了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值