前后台$.post交互并返回JSON对象(包括JSONObject没有fromObject解决方法)

后台传入参数,前端接收进行处理并执行相应的函数

前端代码

   //传入点击的用户id,获取该用户信息并放入表单中
    function update(id) {
        //将提交表单的URL变为update
        myUrl = '/updateUser';
        if(!id){
            alert('id错误');
            return false;
        }

        $.ajax(
                {
                    url:"/toUpdateUser",
                    data:{"id":id},
                    type:"post",
                    //解决编码问题
                    scriptCharset: 'utf-8',
                    beforeSend:function () {
                        return true;
                    },
                    success:function (data) {
                        if(data){
                            //解析json数据
                            var data = data;
                            var user = eval("("+data + ")");

                            //赋值
                            $('#userID').val(user.userID);
                            $('#username').val(user.username);
                            $('#password').val(user.password);
                            $('#phone').val(user.phone);
                            $('#email').val(user.email);

                            //在修改用户信息时,username不可修改
                            $('#username').attr("readonly","readonly");
                        }
                    }
        });
    }

后台代码:
Controller

 @RequestMapping("/toUpdateUser")
    public void toUpdateUser(int id, HttpServletResponse response,HttpServletRequest request)throws  Exception{
        User user = userService.findById(id);
        ResponseUtil.writeToJSON(response,(Object)user);
    }

工具类:将普通对象转换为JSON数据

import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;

//注意此处import的包
import net.sf.json.JSONObject;


/**
 * @Description: 转换为json类输出
 * @Author: zxm
 * @CreateDate: 2018/6/10 16:44
 * @UpdateRemark: 更新说明
 * @Version: 1.0
 */
public class ResponseUtil {
    public static void writeToJSON(HttpServletResponse response, Object o)throws Exception{
//        response.setCharacterEncoding("text/html;charset=utf-8");
        PrintWriter pw = response.getWriter();

        //只有net.sf.json中的JSONObject对象才有fromObject()这个方法
        JSONObject jsonObject = JSONObject.fromObject(o);

        //System.out.println(o.toString());
        pw.print(jsonObject);
        pw.flush();
        pw.close();
    }
}

pom文件

<!--jsonObject包导入-->
        <!-- https://mvnrepository.com/artifact/net.sf.json-lib/json-lib -->
        <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
            <!--一定要加包的版本,否则引入的包无法使用-->
            <classifier>jdk15</classifier>
        </dependency>

猜你喜欢

转载自blog.csdn.net/zxm490484080/article/details/80644433