后台以json数据形式返回之后前台接受的方法以及之后的解析总结

1、前台AJAX请求,后台以对象转JSON形式返回:

后台代码:

 @RequestMapping(value = "/queryDist", method = RequestMethod.POST)
    @ResponseBody
    public Result queryDist(HttpServletRequest request) {
        Boolean f = false;
        String devCode = request.getParameter("devCode");
        Subject subject = SecurityUtils.getSubject();
        String userId = (String) subject.getPrincipal();
        User user = userService.getUserById(userId);
        log.info("发送盘点指令,设备号是:"+devCode+",盘点指定卡盘:为指定;");
        Map map=new HashMap();
        try {
           //。。。。。。逻辑代码省略。。。。。。。。。。。。。
                return new Result(true, ResultCodeEnum.SUCCESS.getRetCode(),ResultCodeEnum.SUCCESS.getRetMsg(),list);
            }
        } catch (Exception e) {
            log.info("加卡指令发送失败"+e.getMessage());
            e.printStackTrace();
            return new Result(false, ResultCodeEnum.CONNECT_ERROR.getRetCode(),ResultCodeEnum.CONNECT_ERROR.getRetMsg());
        }
        return new Result(f);
    }

其中Result是我们自己的一个java类:

public class Result {
    private boolean success;
    private String retCode ;
    private String retMsg;
    private Object data;
    private String message;
    private String code;
}

前台接受及加工情况:

                        ajaxPost(basePath+"/api/deviceController/queryDist?devCode="+devCode,null,function(data){
                            if(data.retCode==‘00‘){
                                modals.correct("指令发送成功,数据盘点中,请稍后...");
                                console.log(data.data)
                                var nums=data.data;
                                console.log(nums.length)
                                for (var i=0;i<nums.length;i++){
                                    if (nums[i].indexOf("-")==0){//实际盘库有卡但是数据库记录无卡
                                        $("#showResult").append("<div class=\"eachMassage\" style=\"padding-left:10px;padding-left:10px;width: 90%;height: 25px;line-height: 25px;margin: 5px auto;background-color: rgba(0,0,255,0.3);text-align: left;border-radius: 3px;color: white;\">卡槽"+(0-nums[i])+"数据不匹配:数据库记录无卡,实际盘库结果有卡</div>\n")
                                    } else {
                                        $("#showResult").append("<div class=\"eachMassage\" style=\"padding-left:10px;padding-left:10px;width: 90%;height: 25px;line-height: 25px;margin: 5px auto;background-color:rgba(0,255,0,0.3);text-align: left;border-radius: 3px;color: white;\">卡槽"+nums[i]+"数据不匹配:数据库记录有卡,实际盘库结果无卡</div>\n")
                                    }
                                }
                            }else{
                                modals.error("指令发送失败,连接设备失败");
                            }
                        });

2、后台返回的List里面装对象然后转为json:

后台代码:

public List<Comments> findCommentsByMessageId(HttpServletRequest request, HttpServletResponse response,int msgId){
        List<Comments> list= service.findCommentsByMessageId(msgId);
        //将列表转成json字符串
        JSONArray json=JSONArray.fromObject(list);
        String jsonString=json.toString();
        //将json字符串返回给前台
        try {
            PrintWriter out =response.getWriter();
            out.write(jsonString);
            out.flush();
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

注意:上面的代码执行的前提是目标对象也就是上面的Comments类需要“toString”:

@Override
    public String toString() {
        return "Comments [commentsId=" + commentsId + ", messageId="
                + messageId + ", messageUserId=" + messageUserId
                + ", commentsUserId=" + commentsUserId + ", commentwords="
                + commentwords + ", publishtime=" + publishtime
                + ", headimgname=" + headimgname + ", nickname=" + nickname
                + "]";
    }

前台解析代码:

其他情况待总结

原文地址:https://www.cnblogs.com/luzhanshi/p/10920710.html

时间: 2024-10-08 21:56:02

后台以json数据形式返回之后前台接受的方法以及之后的解析总结的相关文章

用ajax获取后台数据,返回json数据,怎么在前台使用?

用ajax获取后台数据,返回json数据,怎么在前台使用呢? 后台 C# code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 if (dataType == "SearchCustomer")                 {                     int ID;                     if (Int32.TryParse(CustomerID, out ID))                     {    

jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表

对于问题从后台获取json数据,将内容填充到下拉列表,代码非常简单,具体过程请看下面代码. 需求:url:链接     par:ID       sel:下拉列表选择器 function BuildSelectBox(url, par, sel) {  $(sel).empty();  $.getJSON(url, { id: par }, function (json, textStatus) {   for (var i = json.length - 1; i >= 0; i--) {  

传递给后台的Json数据解析

后台代码如下: public void ProcessRequest(HttpContext context) { context.Response.ContentType = "application/json"; HttpRequest request = context.Request; if (request.InputStream != null && request.InputStream.Length > 0) { StreamReader read

【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回

作者:ssslinppp      时间:2015年5月26日 15:32:51 1. 摘要 本文讲解如何利用spring MVC框架,实现ajax异步请求以及json数据的返回. Spring MVC与json参考文章:[spring学习笔记-mvc-3]返回json数据-方式1  和 [spring学习笔记-mvc-4]返回json数据-方式2. 使用到的技术主要如下: Ajax:使用JQuery 提供的ajax:==>需要引入jquery.min.js文件: Spring MVC: Jso

jquery用ajax方式从后台获取json数据,将内容填充到下拉列表。

从后台获取json数据,将内容填充到下拉列表. url:链接 par:ID sel:下拉列表选择器 //获取下拉列表 function BuildSelectBox(url, par, sel) { $(sel).empty(); $.getJSON(url, { id: par }, function (json, textStatus) { for (var i = json.length - 1; i >= 0; i--) { $(sel).prepend('<option value=

SpringMVC中出现&quot; 400 Bad Request &quot;错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法

最近angularjs post到后台 400一头雾水 没有任何错误. 最后发现好文,感谢作者 SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法 今天开发过程中,在SpringMVC中的Action中处理前台ajax请求传过来的json数据直接转成对应的实体类时出错:400 Bad Request,后台也不报错,400指的的是请求无效(请求有语法问题或者不能满足请求),调试了好长时间

用easyui从servlet传递json数据到前端页面的两种方法

用easyui从servlet传递json数据到前端页面的两种方法 两种方法获取的数据在servlet层传递的方法相同,下面为Servlet中代码,以查询表中所有信息为例. //重写doGet方法 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stu

mysql插入数据后返回自增ID的方法

mysql插入数据后返回自增ID的方法 mysql和oracle插入的时候有一个很大的区别是,oracle支持序列做id,mysql本身有一个列可以做自增长字段,mysql在插入一条数据后,如何能获得到这个自增id的值呢? 方法一:是使用last_insert_id mysql> SELECT LAST_INSERT_ID(); 产生的ID 每次连接后保存在服务器中.这意味着函数向一个给定客户端返回的值是该客户端产生对影响AUTO_INCREMENT列的最新语句第一个 AUTO_INCREMEN

干货运用resteasy整合web框架,同时将后台接口以js形式导出到前台

不多说先上 web.xml配置 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/jav