现在通过前台向数据库查询了一个对象,现在需要把这个对象传回前台表单中,现在用原生的ajax 去做、 哪位大神教教我怎么使用json  把这些字段传回前台?小弟新手,先谢谢了。能给出详细理论或者demo的最好。 

解决方案 »

  1.   

    先下一个JSON的工具包,有阿里的fastjson、json-lib和jackson等等;比如fastjsonimport com.alibaba.fastjson.JSON;
    Model model = ...; 
    String jsonStr = JSON.toJSONString(model);
    再把字符串用response写回给浏览器即可
      

  2.   

    先通过jsonlib或者其他工具将pojo转换成json字符串
    然后通过reponse.getWriter.write()  写到前台前台获取到字符串转换成json对象就行, js将字符串转换为json对象有内置方法,百度一下就好。
      

  3.   

    你去百度搜索一个jsonutils 又各种json转换 一看就能明白
      

  4.   

    后台用一个map集合把对象传到前台,前天你用ajax接收的时候,在ajax响应成功的那里, 把你需要的值取出来就可以了
      

  5.   

    比如:   success : function(data) {
    if (data.code == 0) {
       data.你的对象.需要的值
    } else {
      

  6.   

    注意 : 我所希望的是用原生的Ajax 去做,而并非第三方封装好的Ajax。
      

  7.   

    var data=xhr.responseText;
    data=eval("("+data+")");
    //现在这个data就是json对象了
      

  8.   

            <body>
        <input type="button" value="post" id="search" onclick="search()"/>
       </body>
    <script type="text/javascript">
    function search(){
    $.ajax({
       type: "POST",
       url: "userAction!search.act",
       success: function(msg){
         alert( msg );
       }
    });
    }
    </script>
          public void search(){
    Module model = new Module();
    model.setId(1);
    model.setName("www");
    success("操作成功!",model);
    }      protected String success(String message,Object data) {
       return result("success", message, data);
           }    import net.sf.json.JSONObject;
         protected String result(String status,String message,Object data) {
       JSONObject json=new JSONObject();
       json.put("status", status);
       json.put("message", message);
       json.put("data", data);
       return ajaxJsonObject(json);
         }    protected String ajaxJsonObject(JSONObject json) {
           return ajax(json, "text/html");
       }    protected String ajax(Object content, String type) {
            HttpServletResponse response=null;
            try {
                response=getResponse();
                response.setContentType(type + ";charset=UTF-8");
                response.setHeader("Pragma", "No-cache");
                response.setHeader("Cache-Control", "no-cache");
                response.setDateHeader("Expires", 0);
                response.getWriter().print(content);
            } catch (IOException e) {
                LOG.error(e.getMessage());
            }
            finally{
                try {
                    response.getWriter().flush();
                    response.getWriter().close();
                } catch (Exception e) {
                    LOG.error(e.getMessage());
                }
            }
            return null;
        }
      

  9.   

    首先如果用的是Springmvc需要在方法返回值上面加@ResponseBody注解
    public @ResponseBody Map<String, String> goToLogin(){
    this.getMes().put("**", "**");
    this.getMes().put("**", "***");
    return this.getMes();
    }
    我这里是map,想要json,使用JsonObject.fromObject传一下就好了
    ---前台如果是表单的话,可以写一个表单的回调函数  data-callback='addBtnBack'
    js实现函数
    function addBtnBack(json) {} 就可以使用json数据了
      

  10.   

    原生 的ajax?  那就是string 喽?  直接 返回 json 串就是了 别返回 对象  然后用js  把 字符串转成json
      

  11.   

    java  对象转json的工具包一大堆,我常用的一种。
    Gson gson= new Gson();
    String userJson = gson.toJson(wareList);
    StringBuilder jsonBuf = new StringBuilder("{\"flag\":");
    jsonBuf.append(result);
    jsonBuf.append(", \"msg\":\");
    jsonBuf.append(msg);
    jsonBuf.append("\", \"data\":");
    jsonBuf.append(userJson)
    jsonBuf.append("}");
    return jsonBuf.toString();js: json2jsobj 可以2选1,建议还是用前后端分离,用angularjs/vuejs等单文件js技术
    1.eval("var wareList="+jsonStr);
    2.var myJson = new Function("return "+jsonStr);
    alert(myJson()['flag'])