簡體   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