java获取request里面的json

加上工具类的代码:
public static byte[] getRequestPostBytes(HttpServletRequest request)
throws IOException {
int contentLength = request.getContentLength();
if(contentLength<0){
return null;
}
byte buffer[] = new byte[contentLength];
for (int i = 0; i < contentLength;) {

        int readlen = request.getInputStream().read(buffer, i,
                contentLength - i);
        if (readlen == -1) {
            break;
        }
        i += readlen;
    }
    return buffer;
}


public static String getRequestPostStr(HttpServletRequest request)
        throws IOException {
    byte buffer[] = getRequestPostBytes(request);
    String charEncoding = request.getCharacterEncoding();
    if (charEncoding == null) {
        charEncoding = "UTF-8";
    }
    return new String(buffer, charEncoding);
}

 public static String getRequestJsonString(HttpServletRequest request)
            throws IOException {
        String submitMehtod = request.getMethod();
        // GET
        if (submitMehtod.equals("GET")) {
            return new String(request.getQueryString().getBytes("iso-8859-1"),"utf-8").replaceAll("%22", "\"");
        // POST
        } else {
            return getRequestPostStr(request);
        }
    }

三个方法。

在controller里面用
String json = getRequestJsonString(request);
System.out.println(json);
获取json数据把string变成json数据
JSONObject json_test = JSONObject.fromObject(json);
System.out.println(json_test.get(“producerid”));

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java框架,`@RequestBody`是一个注解,用于标识方法参数或方法返回值应该通过HTTP请求的主体部分进行绑定或序列化。 当使用`@RequestBody`注解标记方法参数时,它表示该参数的值应该从HTTP请求的主体提取,并将其转换为指定的对象类型。这样可以方便地将请求的JSON或XML数据转换为Java对象。 例如,以下是一个使用`@RequestBody`注解的示例: ```java @PostMapping("/users") public ResponseEntity<User> createUser(@RequestBody User user) { // 处理创建用户的逻辑 return ResponseEntity.ok(user); } ``` 在上面的示例,`createUser`方法使用`@RequestBody`注解标记了`User`类型的参数。当收到POST请求时,框架会自动将请求主体JSON或XML数据转换为`User`对象,并将其作为参数传递给`createUser`方法。 当使用`@RequestBody`注解标记方法返回值时,它表示该方法的返回值应该被序列化为HTTP响应的主体部分。这样可以方便地将Java对象转换为JSON或XML格式的响应数据。 以下是一个使用`@RequestBody`注解的示例: ```java @GetMapping("/users/{id}") public ResponseEntity<User> getUser(@PathVariable Long id) { User user = userService.getUserById(id); // 返回用户对象作为响应主体 return ResponseEntity.ok(user); } ``` 在上面的示例,`getUser`方法使用`@RequestBody`注解标记了`User`类型的返回值。框架会自动将`User`对象序列化为JSON或XML格式,并作为HTTP响应的主体返回给客户端。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值