1. 程式人生 > 程式設計 >SpringMVC JSON資料互動實現過程解析

SpringMVC JSON資料互動實現過程解析

為什麼使用JSON進行資料互動?

  JSON資料格式比較簡單、解析比較方便,在介面呼叫及HTML頁面Ajax呼叫時較常用。

JSON互動方式

請求是Key/Value,響應是JSON(推薦使用)

請求是JSON,響應是JSON

依賴包

    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.8</version>
    </dependency>

測試

請求k/v,響應json

jsp頁面

function responseKV(){
  $.ajax({
    type:"post",url:'${pageContext.request.contextPath }/responseKV',//輸入是key/value時,預設就指定好了contentType了,不需要再指定了
    //contentType:'application/json;charset=utf-8',//data為key/value形式
    data:'name=json測試&price=999',success:function(data){
      alert(data);
    }
  });
}

Controller類(類上加響應標記:@ResponseBody)

// 輸入是key/value,輸出是json
// @ResponseBody 將返回值轉成json串響應給前臺
@RequestMapping("/responseKV")
@ResponseBody
public Item responseKV(Item item) {
  return item;
}

SpringMVC JSON資料互動實現過程解析

請求JSON,響應JSON

jsp頁面

function requestJson(){
  $.ajax({
    type:"post",url:'${pageContext.request.contextPath }/requestJson',//輸入是json是 ,需要指定contentType為application/json
    contentType:'application/json;charset=utf-8',data:'{"name":"json測試","price":999}',success:function(data){
      alert(data.name);
    }
  });
}

Controller類(請求引數上加:@RequestBody標記;類上加@ResponseBody標記)

@Controller
public class JsonController {
  // 輸入是json,輸出是json
  // @RequestBody 將請求的json串轉成java物件
  // @ResponseBody 將返回值轉成json串響應給前臺
  @RequestMapping("/requestJson")
  @ResponseBody
  public Item requestJson(@RequestBody Item item) {
    return item;
  }
}

報文頭

SpringMVC JSON資料互動實現過程解析

SpringMVC JSON資料互動實現過程解析

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。