当我尝试使用JSON将对象发送到Java控制器时,我遇到此错误。 JSON解析错误:无法反序列化java.util.ArrayList
的实例
我的模特。
@Document(collection = "post")
public class Post implements Serializable {
private static final long serialVersionUID = 1L;
@Field("pics")
private List<String> pics;
我的控制器
@PostMapping(value = "/savePost", produces =
MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Void> savePost(@RequestBody Post post) {
我的Js服务
function savePost(post) {
debugger;
var deferred = $q.defer();
$http.post(REST_SERVICE_SAVE_POST_URI,post).then(
function (response) {
deferred.resolve(response);
},
function(errResponse){
console.log('Error while savePost posts');
console.log(errResponse);
deferred.reject(errResponse);
}
);
return deferred.promise;
}
我的JSON
pics:
0: "123"
1: "123"
2: "123"
3: "123"
__proto__: Object
我的JSP
<label for="postPic1" class=form-post-label><spring:message code="page.manager.post.pic1" /></label>
<input type="text" id="postPic1" class="form-control form-post-input" ng-model="postAdd.pics[0]" required />
<label for="postPic2" class=form-post-label><spring:message code="page.manager.post.pic2" /></label>
<input type="text" id="postPic2" class="form-control form-post-input" ng-model="postAdd.pics[1]" required />
<label for="postPic3" class=form-post-label><spring:message code="page.manager.post.pic3" /></label>
<input type="text" id="postPic3" class="form-control form-post-input" ng-model="postAdd.pics[2]" required />
<label for="postPic4" class=form-post-label><spring:message code="page.manager.post.pic4" /></label>
<input type="text" id="postPic4" class="form-control form-post-input" ng-model="postAdd.pics[3]" required />
谢谢
来自UI的这个json看起来像一个map而不是ArrayList:
pics: {
0: "123"
1: "123"
2: "123"
3: "123"
}
如果你真的想解析它,因为ArrayList
确保来自UI的请求应该是:
"pics": ["123", "123", "123"]
如果我的理解是错误的,请分享来自UI的漂亮的JSON。