Spring MVC控制器如何为json添加自定义拦截器以进行对象序列化和反序列化

发布于 2024-10-21 00:47:25 字数 246 浏览 3 评论 0原文

我正在使用带注释的 spring 3 MVC

使用 @ResponseBody 和 @RequestBody 注释,我可以使用 MappingJacksonHttpMessageConverter 将对象序列化和反序列化为 json,反之亦然。

我需要引入用于对象到 json 转换的自定义拦截器,它可以使用压缩键,例如 fullName 可以用作 fN 等。有人可以建议我如何在控制器中嵌入自定义拦截器(使用任何注释)以进行序列化和反序列化。

I am using spring 3 MVC with annotation

Using @ResponseBody and @RequestBody annotations I am able to serialize and deserialize object to json and vice versa using MappingJacksonHttpMessageConverter.

I need to introduce custom interceptor for object to json conversion which can use compacted keys for example fullName can be used as fN, etc. Can someone suggest me how to embed custom interceptor in controller (using any annotations) for both doing serialization and deserialization.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

生寂 2024-10-28 00:47:25

您始终可以使用任何序列化器并将其发送到 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();
    }

}

同样,您可以使用 POST 请求将 json 字符串发送到控制器。

@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);

希望

有帮助。

You can always use any serializer and send it to HTTP stream:

it will make your live easier.

@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();
    }

}

The same way you can get your json string to controller using POST request.

@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);

}

Hope it helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文