2016-10-20 4 views
0

나는 Ajax jQuery를 사용하여 Post MVC에 데이터를 보내기 요청을 사용하고 있습니다. 그 중 두 값은 String 데이터 유형이고 다른 두 값은 int입니다. 다음과 같은 오류가 발생합니다 : Can not instantiate variable of type.....From Integral number...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

왜 서명을 사용하지 않는 이유는 무엇입니까? –

+0

당신의 pojo는 json에 따라 문자열 타입의 childid와 childage를 가져야합니다. –

답변

0

는 JSON을 변경하려고?

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

} 
+0

답변 해 주셔서 감사합니다. 나는이 문제를 해결하는 데 도움이 되었기 때문에이 대답을 받아 들였습니다. 제가 변경 한 다른 것은'@RequestBody Map mydata'를'@RequestBody MyClass mydata'로 바꾸는 것입니다. –