2016-10-20 5 views
0

私は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; 
+0

なぜ、メソッドシグニチャでDtoを使用しないのですか? –

+0

あなたのpojoには、jsonによるstring型のchildidとchildageが必要です。 –

答えて

0

は、JSONを変更してみ?

{ 
    id:35, 
    firstname : "John", 
    lastname : "Doe", 
    age: 40 

} 
+0

あなたの答えをありがとう。私はこの問題を解決するのに役立ちましたので、私はこの回答を受け入れています。私が変更したもう一つのものは '@RequestBody Map mydata'から' @RequestBody MyClass mydata'です。 –