Ajax获取显示Json数据的一种方法

本文主要是在java中用json与前台Ajax数据交互

1、首先前台用Ajax,其中注意dataType一定要选择json方式,Action成功返回给页面的Json内容是这样的[{"number":"V006","names":"LiLei"}],可见comment['names']对应"names":"LiLei",comment['number']对应"number":"V006"。

$.ajax({  
    type: "post",  
     url:'apply/mystudent.action?',  
    cache: false,  
    dataType : "json",  
    success: function(data){  
          
        $.each(data, function(commentIndex, comment){  
                
                     alert("姓名"+ comment['names']);  
              
                     alert("学号"+comment['number']);  
  
               });  
                              }  
                             });     
2、Ajax的URL指向在java的action中mystudent方法,返回的list其实是一个对象Student,包括了names和nunmber字段
    public String mystudent() throws Exception{  
        List list=priceService.query();//调用接口实现类  
          
        this.jsonUtil(list);  
          
        return null;  
    }  
3、action页面专门写一个方法jsonUtil来做为json方法

    // 调用json工具方法,传入参数alist  
    public void jsonUtil(Object accountlist) throws Exception {  
        HttpServletResponse response = ServletActionContext.getResponse();  
        log.info("JSON格式:" + accountlist.toString());  
      
        String returnJson = JsonConvert.returnJson(accountlist);  
        response.setCharacterEncoding("utf-8");  
        response.getWriter().println(returnJson);  
    }  
4、我用的是一种比较新的json包jackson
    import java.io.StringWriter;  
      
    import org.codehaus.jackson.map.ObjectMapper;  
      
    public class JsonConvert {  
        static String jsonStr;  
        public static String returnJson(Object object) throws Exception{  
            ObjectMapper objectMapper = new ObjectMapper();  
            StringWriter stringWriter = new StringWriter();  
            objectMapper.writeValue(stringWriter, object);  
              
            jsonStr = stringWriter.toString();  
            return jsonStr;  
        }  
    }  


你可能感兴趣的:(ajax)