나는 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;
왜 서명을 사용하지 않는 이유는 무엇입니까? –
당신의 pojo는 json에 따라 문자열 타입의 childid와 childage를 가져야합니다. –