私はAjax
を使用しています。jQueryを使用してSpring MVCにデータを送信するポストリクエストです。これらの値のうちの2つは、データタイプがString
であり、他の2つはint
です。nullを返すオブジェクトマッパー値
クライアント側からサーバー側のJavaコードに送信したデータを受信しましたが、オブジェクトマッパーの値はnullです(つまり、personid = om.readValue(id, MyClass.class);
)。これらの行には、次のエラーメッセージが表示されます。エラーはを指します。 Map<String,String>
をMap<String, Object>
に変更することもできません。
以下は私のコードです。どんな助けでも大歓迎です。
JSON:
{
id:"35",
firstname : "John",
lastname : "Doe",
age: "40"
}
コントローラー:
@RequestMapping(value="/mywebservice", method = RequestMethod.POST)
public Object getPerson(@RequestBody Map<String, String> mydata){
MyClass personid = null;
MyClass fname = null;
MyClass lname = null;
MyClass personage = null;
String id = "";
String firstname = "";
String lastname = "";
String age = "";
ObjectMapper om = new ObjectMapper();
if(mydata.containsKey("id"){
id = mydata.get("id");
}
if(mydata.containsKey("firstname"){
firstname = mydata.get("firstname");
}
if(mydata.containsKey("lastname"){
lastname = mydata.get("lastname");
}
if(mydata.containsKey("age"){
age = mydata.get("age");
}
try{
personid = om.readValue(id, MyClass.class);
fname = om.readValue(firstname, MyClass.class);
lname = om.readValue(lastname, MyClass.class);
personage = om.readValue(age, MyClass.class);
}catch(Exception e){ ...}
return helperClass(personid, fname, lname, personage);
}
ヘルパークラス:
public Object getFirstName(MyClass personid, MyClass fname, MyClass lname, MyClass personage){
return addName(personid, fname, lname, personage);
}
モデル:
@JsonProperty("id")
private int childid;
@JsonProperty("firstname")
private String firstname;
@JsonProperty("lastname")
private String lastname;
@JsonProperty("age")
private int childage;
なぜ、メソッドシグニチャでDtoを使用しないのですか? –
あなたのpojoには、jsonによるstring型のchildidとchildageが必要です。 –