java web 接收json串

本文介绍了一种通过Java处理HTTP请求中的JSON数据的方法,包括如何读取并解析客户端发送的JSON串,以及如何构造并返回JSON响应。

json
// json测试 接收一个json串
StringBuffer sb = new StringBuffer();
BufferedReader br = new BufferedReader(
        new InputStreamReader((ServletInputStream) request.getInputStream(), "utf-8"));
String temp;
while ((temp = br.readLine()) != null) {
    sb.append(temp);
}
br.close();
System.out.println(sb.toString());




// 返回json数据
response.setContentType("application/x-javascript; charset=utf-8");  
PrintWriter pw = response.getWriter();  
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("name", "aaa");
System.out.println(jsonObject.toString());
pw.write(jsonObject.toString());  
pw.flush();  
pw.close();
Java的Spring框架中,Controller层通常用于处理HTTP请求并返回响应。接收JSON字符串并将其转换为Java对象是一个常见的需求。以下是如何在Controller中接收JSON字符串并将其转换为Java对象的步骤: 1. **创建Java类**:首先,创建一个与JSON结构匹配的Java类。例如,假设我们有一个表示用户的JSON字符串: ```json { "id": 1, "name": "John Doe", "email": "john.doe@example.com" } ``` 对应的Java类可以是: ```java public class User { private int id; private String name; private String email; // Getters and Setters public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } } ``` 2. **创建Controller**:在Controller中,使用`@RequestBody`注解来接收JSON字符串并将其转换为Java对象。 ```java import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/users") public class UserController { @PostMapping public ResponseEntity<User> createUser(@RequestBody User user) { // 处理接收到的User对象 System.out.println("Received User: " + user.getName()); // 返回响应 return ResponseEntity.ok(user); } } ``` 在这个例子中,`createUser`方法接收一个`User`对象作为请求体,并将其打印出来。然后,它返回一个包含`User`对象的响应。 3. **测试Controller**:可以使用工具如Postman或cURL来测试这个Controller。 使用cURL的示例: ```sh curl -X POST http://localhost:8080/users \ -H "Content-Type: application/json" \ -d '{"id": 1, "name": "John Doe", "email": "john.doe@example.com"}' ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值