私は、私のPOJOに投稿のメソッド本体からの私のJSONに変換することができません@RequestBody
私のコントローラクラスの内部。
私は、エラーをデバッグし、私は特定のフィールドをマッピングし、他の人がいないであったことがわかりました。このような(POJO) :
name: null, typeOfPlan: null, Email: [email protected], PhoneNum: 123456789, Website: test.org, Username: null, password: 1234
、奇妙です。
JSON:
{
"confirmPassword": "1234",
"email": "[email protected]",
"password": "1234",
"phoneNum": "123456789",
"name": "Hello world",
"typeOfPlan": "Test",
"userName": "user",
"website": "test.org"
}
コントローラ
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class SomeController {
@Autowired
private Service foo;
@CrossOrigin
@PostMapping(value = "/create")
private void createAccount(@RequestBody BigFoo bigFoo) {
foo.createAccount(bigFoo);
}
}
ここから、私は私のサービス、そしてDAOクラスを呼び出します。
POJO
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class BigFoo {
private String name;
private String typeOfPlan;
private String email;
private String website;
private String phoneNum;
private String username;
private String password;
}
私はまたしてJSONを許可しようとしたconsumes media type
で@PostMapping
、それはそれはこの問題を解決できませんでした。
ジャクソンObjectMapperを使用すると、同様に動作しませんでした。
:私の問題は簡単だった私の春ブーツのアプリにデータを送信し、私の角度のプロジェクトで私の変数は、スペルが間違ったので、私のバックエンドアプリケーションによって認識されなかったので、正しく私のPOJOにマッピングされていませんでした。
私は私のPOJOの変数を一致させるために私のフロントエンドのフォーム変数を変更した後、私はこれを得ました:
POJOデータ
name: It's good now, typeOfPlan: 2 Year, Email: [email protected], PhoneNum: 123456789, Website: test.org, Username: Master, password: 1234
春ブーツはマップできませんでしたname
、typeOfPlan
とUsername
彼らは単に私のバックエンドでのものと一致しませんでしたので、JSONから。
前
Name, typeOfPlan, userName
後に
name, type, username
皆さんありがとう!