Spring MVC контроллер, как добавить пользовательский перехватчик для JSON сериализации и десериализации объекта - PullRequest
0 голосов
/ 10 марта 2011

Я использую пружину 3 MVC с аннотацией

Используя аннотации @ResponseBody и @RequestBody, я могу сериализовать и десериализовать объект в json и наоборот, используя MappingJacksonHttpMessageConverter.

Мне нужно ввести пользовательский перехватчик для преобразования объекта в json, который может использовать сжатые ключи, например, fullName можно использовать как fN и т. Д. Может кто-нибудь предложить мне, как встроить пользовательский перехватчик в контроллер (используя любые аннотации) для выполнения сериализации? и десериализация.

1 Ответ

0 голосов
/ 10 марта 2011

Вы всегда можете использовать любой сериализатор и отправлять его в поток HTTP:

это облегчит вашу жизнь.

@RequestMapping(value="/get/{id}",method = RequestMethod.GET)
@ResponseBody
public void getData(@PathVariable String id,HttpServletResponse response){

//make our business logic. 

//use any serializer to serialize.
String serialiedObject = Serializer.serialize(Object);
 response.setContentType("application/json");
 response.setContentLength(serialiedObject.length);
 ServletOutputStream out;
try {
    out = response.getOutputStream();
    out.write(serialiedObject);
    out.lose();
    } catch (IOException e) {
    e.printStackTrace();
    }

}

Так же, как вы можете получить строку json на контроллер, используяPOST-запрос.

@RequestMapping(value="/add",method = RequestMethod.POST)
@ResponseBody
public void addtData(@RequestParam("json") String myJson){

Object =    //use any serializer to serialize.
Object deSerialiedObject = Serializer.deserialize(myJson);

}

Надеюсь, это поможет.

...