springmvc_4_处理 JSON:使用 HttpMessageConverter

/**
     * 
     * 总结:使用了
     * – 使用 @RequestBody / @ResponseBody 对处理方法进行标注
– 使用 HttpEntity<T> / ResponseEntity<T> 作为处理方法的入参或返回值
其实spring会自动的把请求信息或者响应信息,转换为所对应的java数据或者客户端所期望的请求数据

     * 处理 JSON
1. 加入 jar 包:
• 2. 编写目标方法,使其返回 JSON 对应的对象或集合
• 3. 在方法上添加 @ResponseBody 注解

HttpMessageConverter<T> 是 Spring3.0 新添加的一个接口,
负责将请求信息转换为一个对象(类型为 T),@RequestBody,@RequestEntity
将对象(类型为 T)输出为响应信息,@ResponseBody

使用 HttpMessageConverter<T> 将请求信息转化并绑定到处理方法的入
参中或将响应结果转为对应类型的响应信息,Spring 提供了两种途径:
– 使用 @RequestBody / @ResponseBody 对处理方法进行标注
– 使用 HttpEntity<T> / ResponseEntity<T> 作为处理方法的入参或返回值
• 当控制器处理方法使用到 @RequestBody/@ResponseBody 或
HttpEntity<T>/ResponseEntity<T> 时, Spring 首先根据请求头或响应头的
Accept 属性选择匹配的 HttpMessageConverter, 进而根据参数类型或
泛型类型的过滤得到匹配的 HttpMessageConverter, 若找不到可用的
HttpMessageConverter 将报错
     * @param json
     * @param httpEntity
     * @return
     */
    @RequestMapping("RequestBody")
    @ResponseBody
    public Map<String, Object> RequestBodyAndResponseBody(
            @RequestBody String json,
            HttpEntity<String> httpEntity
            ){
        String body = httpEntity.getBody();
        Map<String, Object> retMap = new HashMap<String, Object>();
        retMap.put("code", 1);
        return retMap;
    }

    @RequestMapping("ResponseEntity")
    public ResponseEntity ResponseEntity(
            HttpEntity<String> httpEntity
            ){
        String body = httpEntity.getBody();
        Map<String, Object> retMap = new HashMap<String, Object>();
        retMap.put("code", 1);
        ResponseEntity<Map<String,Object>> responseEntity = new ResponseEntity<Map<String,Object>>(retMap, HttpStatus.OK);
        return responseEntity;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值