前端Ajax傳遞Json數據,后端處理兩種方式


在這里只討論在前端通過Ajax遠程傳輸Json數據的,不討論通過form的形式傳遞數據

第一種方式:

  前端傳遞過來的數據剛好和我們的bean實體對象屬性一致,則可以使用對象的形式接受。

前端寫法:

 1  $().ready(function(){  2       var obj = JSON.stringify({'userNo':'121589','processId':'15','processName':'測試審批','description':'這是一個測試'});  3  alert(obj);  4                
 5       //后台使用對象的形式接受
 6  $.ajax({  7            url: "testJsonOne",  8            type: "post",  9  data: obj, 10            contentType: 'application/json;charset=utf-8', 11            success : function(data){ 12                 alert("haha"); 13  } 14  }); 15                
16  });

特別要注意的點:

  1. contentType: 'application/json;charset=utf-8' ,指定數據是以Json的形式傳遞

  2.要傳遞的data,要是一個Json格式的字符串,最好先創建一個json對象,然后使用JSON.stringify()來轉換成字符串形式

后台寫法:

//對象形式接受前端數據
    @RequestMapping(value= "/testJsonOne",method = RequestMethod.POST) @ResponseBody public String testJson(@RequestBody PoMessageVo poMessageVo) { System.out.println(poMessageVo.toString()); return "success"; }

注意點:

  1.前端數據和bean對象屬性要一致

  2.會使用到@RequestBody注解,而這個注解要先導入jar包的,分別是jackson-core-asl-xxx.jar和jackson-mapper-asl-xxx.jar兩個包

  3.注解用法不了解的話,百度一下

 

第二種方式:

  有可能前端傳遞過來的數據很多很復雜,則我們可以在后端使用字符串的形式接受,具體的處理,我們在后端自己再處理。

前端寫法:

//后台使用字符串的形式接受的
$.ajax({ url: "testJsonTwo", type: "post", //data: {jsonStr:'nihao'},
 data: {jsonStr:obj}, //data: obj,
    //contentType: 'application/json;charset=utf-8',
    success : function(data){ alert("haha"); } });

注意與上面的做比較:

  1. jsonStr指定后台只能以這個名稱接受
  2. Ajax上不用指定contentType: 'application/json;charset=utf-8'

后台寫法:

//以字符串的形式接受前端數據
@RequestMapping(value= "/testJson",method = RequestMethod.POST) @ResponseBody public String testJson(String jsonStr) { System.out.println(jsonStr); //這里可以使用JsonMapper來處理jsonStr,比如轉成需要的bean對象
    return "success"; }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM