Springmvc如何接收Json的request

前端經過ajax能夠發送一個json給後端,這時候用springmvc如何處理呢?前端

1 前端代碼要指定contenttype爲json,而且經過stirngfy將json轉爲一個字符串ajax

contentType:"application/json",               
    data:JSON.stringify(jsondata),

2 增長jackson的支持spring

<!-- Jackson JSON Mapper -->
		<dependency>
			<groupId>org.codehaus.jackson</groupId>
			<artifactId>jackson-mapper-asl</artifactId>
			<version>${jackson.version}</version>
		</dependency>

3 後端的contrller要用註解@RequestBody 支持json

@RequestBody User jsondata

--在項目裏部署後前端會報錯400,後臺報錯爲No suitable constructor found for type [simple type, class ]: can not instantiate from JSON object。問題緣由有幾種,1是前端的屬性和後端的映射類的屬性名不對 2是後端映射類是沒有構造函數和public的方法 3 或者使用JsonProperty這個註解來處理後端

解決方案以下:http://stackoverflow.com/questions/7625783/jsonmappingexception-no-suitable-constructor-found-for-type-simple-type-classapi

http://stackoverflow.com/questions/12835911/jackson-jsonmappingexception-due-to-constructormvc

4 fecth api沒有辦法自動轉換app

前端使用了fetch api作異步交互,結果後端的類沒有辦法正確映射出對應的對象,報錯The request sent by the client was syntactically incorrect.異步

前端發送的數據以下函數

Request Payload:
{name: "ha", id: 1}

這是由於前端使用body將對象放到request中

opts.body=JSON.stringify(a);
  opts.method='POST';
  return fetch(url, opts)

因此後端參數映射必須也是body

@RequestBody A body
相關文章
相關標籤/搜索