2012-02-11 2 views
0

Использование Джексона я в состоянии преобразовать объект JSONSpring MVC-Джексон не читает объект JSON с JQuery

@RequestMapping(value="getMessage.test", headers = "Accept=application/json" ,method = RequestMethod.POST) 
    public @ResponseBody TestObject getMessage(){ 
     TestObject object=new TestObject(); 
     object.setMessage("Hello JQuery"); 
     return object; 
    } 

Приведенный выше код работает хорошо ... Но преобразование из JSON в объект дает WARN PageNotFound - Не найдено соответствующего метода обработчика для запроса сервлета: путь '/setMessage.test', метод 'POST', параметры map [[empty]] Ниже приведен код. Где я буду неправильно ..

@RequestMapping(value="setMessage.test", method = RequestMethod.POST, headers = "Accept=application/json" ) 
    public void setMessage(@RequestBody TestObject test,HttpServletRequest request){ 
     System.out.println("Inside setting message"); 
     System.out.println(test.getMessage()); 
    } 

JQuery Ajax звонки ...

$.ajaxSetup({ contentType: "application/json; charset=UTF-8" }); 

    $.post('getMessage.test',function(response) { 
     alert(response.message); 
      }, 'json'); 

    $.post('setMessage.test', {message: 'Hello Spring'}); 
+0

Works, если я отправляю с обратного вызова функции $ .post ('setMessage.test', {message: 'Hello Spring'}, function (response) {alert (response.message);}, 'json'); Но я получаю org.springframework.http.converter.HttpMessageNotReadableException: Не удалось прочитать JSON: Неожиданный символ ('m' (код 109)): ожидается допустимое значение (число, строка, массив, объект, 'true', 'false' или «null») ** Что отправлено не является допустимым JSON? ** – james007

+0

вы пробовали '{" сообщение ":" Hello Spring "}' insted of '{message:" Hello Spring "}'? –

ответ

1

Наконец я получил исправление. В методе JQuery $ .post есть ошибка, которая не устанавливает правильный тип контента. Таким образом, установив contenttyple в ajaxsetup работает хорошо ... и я использовал jquery.json-2.3.min.js создать объект JSon .....

$.ajaxSetup({ 
      contentType: "application/json; charset=UTF-8" 
    });