繁体   English   中英

将JSON对象转换为Java对象

[英]Convert json object to java object

我有这样的要求:

   let jsonData= {};
   jsonData["className"]= className;
   jsonData["models"]= arr;
   let endPoint= "/classses?classAndModel=" + encodeURIComponent(JSON.stringfy(jsonData));
return $.ajax({
            url: host + endPoint,
            data: data,
            cache: false,
            contentType: false,
            processData: false,
            method: "POST"
        });

我想将json转换为java对象。

My rest service is: 

@PostMapping(value=/classes",consumes=MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<Void> addClassAndModelMapping(ClassAndModels classAndModels){

}


public class ClassAndModels {
   ClassAndModelResult classAndModel;

   ...getter and setter...
  }
public ClassAndModelResult {
    String className;
    List<String> models;

    ...getter and setters...
 }

我得到400错误。如果我将该行ClassAndModelResult classAndModel更改为String classAndResult 。我得到响应,但我想要对象类型。你有什么主意吗?

代码的第一部分显示您正在将数据作为查询字符串发送。

看看https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestParam.html

但是考虑到@PostMapping,您应该在请求正文中发送该数据,并在服务器端执行类似的操作。

@PostMapping("/classes")
public ResponseEntity<Void> addClassAndModelMapping(@RequestBody ClassAndModels classAndModels){
 //
}

正如Phils所说,您可以在控制器上添加GetMapping,以了解如何对ClassAndModels进行序列化

资料来源: https : //spring.io/guides/tutorials/bookmarks/

PS对不起,我的英语不是我的母语。

请尝试添加@RequestParam批注或更好地将classAndModel值用作RequestBody,类似于下面的内容,并更正javascript网址中的拼写错误。

@PostMapping(value = "/classes")
    public ResponseEntity<Void> addClassAndModelMapping(@RequestBody ClassAndModels modal) {
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM