使用jackSon笔记,

把java中的对象转换成Json输出给浏览器

利用extjs的ajax方法,发送

function ajaxtest() {
    Ext.Ajax.request({
        url:"/Extjs/TimeServlet", //这里注意要加上webRoot的名字
        success:function(response,config) {
            alert(config.url+","+config.method);
            var json = Ext.util.JSON.decode(response.responseText);
            Ext.MessageBox.alert("result",json.author+","+json.time);
        },
        failure:function() {
            Ext.MessageBox.alert("result","request failure");
        },
        method:"post",
        params:{name:"fuck"}
    });
}

要转换的java类

package com.zl.extjs;

import java.util.Date;

public class People
{
    private String author;
    private Date time;

    public String getAuthor()
    {
        return author;
    }

    public void setAuthor(String author)
    {
        this.author = author;
    }

    public Date getTime()
    {
        return time;
    }

    public void setTime(Date date)
    {
        this.time = date;
    }
}

接收兵输出的Servlet

package com.zl.extjs;

import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Date;

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

import org.codehaus.jackson.map.ObjectMapper;

public class TimeServlet extends HttpServlet
{
    private static final long serialVersionUID = 1L;

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

    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException
    {
        People p = new People();
        p.setAuthor("fuck");
        p.setTime(new Date());
        String name = request.getParameter("name");
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();
        StringWriter w = new StringWriter(); //创建一个字符流,写在此流里的内容存储在内存中
        
        ObjectMapper mapper = new ObjectMapper();
        mapper.writeValue(w,p);//将创建的p这个对象通过jackSOn的mapper.writevalue写入w中
        System.out.println(w.toString()); //可以字符流里的数据转换成String 控制台打印 {"author":"fuck","time":1323321222890}
        out.print(w);//将内存中的数据发给浏览器
        w.close();
        out.flush();
        out.close();
    }
}

 

posted on 2011-12-08 13:20  c3tc3tc3t  阅读(490)  评论(0)    收藏  举报