前端JSON傳入後臺解析
阿新 • • 發佈:2019-01-29
data =[{optionId:"1",topicId:"2"},{optionId:"2",topicId:"3"},{optionId:"3",topicId:"4"}]
@ResponseBody
@RequestMapping(value = "/isVerifyPass")
public Map<String, Object> isisVerifyPass(String data) {
Map<String, Object> resultMap = new HashMap<String, Object>();
NtbUser user =this.checkUserLogin();
List<NtbOptionRegister> list = BaseTools.jsonToList(data, NtbOptionRegister.class);
Res<Integer> resultModel = topicRegisterService.isVerifyPass(list ,user.getId());
resultMap = this.createResultMap(resultModel.isSuccess(), resultModel.getErrorCode(), resultModel.getMessage(),
resultModel.getResult());
return resultMap;
在Controller中所用到了BaseTools.JsonToList來把傳過來的Json格式轉化成了物件。
以下是jsonToList的具體實現程式碼:
// 定義jackson物件
private static final ObjectMapper MAPPER = new ObjectMapper();
/**
* 將json資料轉換成pojo物件list
* <p>Title: jsonToList</p>
* <p>Description: </p>
* @param jsonData
* @param beanType
* @return
*/
public static <T>List<T> jsonToList(String jsonData, Class<T> beanType) {
JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
try {
List<T> list = MAPPER.readValue(jsonData, javaType);
return list;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
這裡的objectMapper是Jackson庫的主要類,她提供一些功能將轉成成java物件匹配json結構。
http://www.yiibai.com/jackson/jackson_objectmapper.html 這是ObjectMapper方法的一些解釋