1
我需要將ajax請求作爲json傳遞給我的休息服務。 我的模型類是無法讀取文檔:無法反序列化java.lang.String的實例超出START_ARRAY令牌
@Entity
@Table(name = "messageslist")
public class MessageList {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Integer id;
public String title;
public String tags;
public String documents;
public String links;
//Then getters and setters
}
休息控制器
@RequestMapping(value = "/AddPost", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseEntity<MessageList> addPost(@RequestBody @Valid MessageList messageList, BindingResult bindingResult,
UriComponentsBuilder ucBuilder) {
BindingErrorsResponse errors = new BindingErrorsResponse();
HttpHeaders headers = new HttpHeaders();
if (bindingResult.hasErrors() || (messageList == null)) {
errors.addAllErrors(bindingResult);
headers.add("errors", errors.toJSON());
return new ResponseEntity<MessageList>(headers, HttpStatus.BAD_REQUEST);
}
this.taskManagerService.savePost(messageList);
headers.setLocation(ucBuilder.path("/api/TS/{id}").buildAndExpand(messageList.getId()).toUri());
return new ResponseEntity<MessageList>(messageList, headers, HttpStatus.CREATED);
}
從客戶端代碼
var post = JSON.stringify({
title : title,
tags : tags,
documents : documents,
links : links
});
var url = "http://localhost:8080/TS/AddPost";
$.ajax({
type : 'POST',
url : url,
contentType : 'application/json; charset=utf-8',
data : post,
dataType : 'json',
success : function(data) {
onComplete();
}
});
我從Ajax調用傳遞JSON數據就像
{"title":"dhfg","tags":["Interactive","Online"],"documents":[],"links":[]}
我如何從json傳遞標籤數組?我是新Java中
錯誤的詳細信息
2017-09-24 01:40:31.978 WARN 9600 --- [nio-8081-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: Could not read document: Can not deserialize instance of java.lang.String out of START_ARRAY token
at [Source: [email protected]; line: 1, column: 24] (through reference chain: org.fs.spring.tm.model.MessageList["tags"]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_ARRAY token
at [Source: [email protected]; line: 1, column: 24] (through reference chain: org.fs.spring.tm.model.MessageList["tags"])
你輸入了錯誤的'List'。你想要'java.util.List'。 – chrylis
@chrylis對不起,這是一個複製粘貼錯誤... –