public class HelloController { @GetMapping("hello") public Map<String, Object> hello() { // 创建一个用于存储返回结果的Map对象 Map<String, Object> map = new HashMap<>(); // 向Map中添加名为"name"的键值对,值为"张三" map.put("name", "张三"); // 向Map中添加名为"age"的键值对,值为25 map.put("age", 25); // 返回存储结果的Map对象 return map; }
时间: 2025-03-22 17:02:29 浏览: 26
### 如何通过Spring控制器返回包含指定键值对的JSON响应
在Spring框架中,可以通过`@RestController`或`@Controller`配合`@ResponseBody`注解来实现返回JSON格式的数据。为了构建一个简单的示例,可以利用Java中的`Map`对象存储键值对,并将其作为HTTP响应的一部分发送给客户端。
以下是具体的代码示例:
```java
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@RestController
@RequestMapping("/api")
public class KeyValueController {
@GetMapping("/keyvalue")
public Map<String, Object> getKeyValueResponse() {
Map<String, Object> response = new HashMap<>();
response.put("status", "success"); // 添加键值对
response.put("message", "This is a JSON response with key-value pairs."); // 添加另一个键值对
response.put("data", Map.of( // 嵌套数据结构
"id", 1,
"name", "Example"
));
return response; // 返回包含键值对的Map对象
}
}
```
上述代码展示了如何创建一个RESTful接口并返回带有特定键值对的JSON响应[^1]。当访问路径 `/api/keyvalue` 时,服务器会返回如下JSON数据:
```json
{
"status": "success",
"message": "This is a JSON response with key-value pairs.",
"data": {
"id": 1,
"name": "Example"
}
}
```
此方法的优点在于其灵活性和简洁性,能够轻松扩展以支持更多复杂的业务逻辑需求。
#### 关于JSON序列化
默认情况下,Spring 使用 Jackson 库将 Java 对象转换为 JSON 格式。如果需要自定义序列化行为,可以配置 `ObjectMapper` 或者使用注解(如 `@JsonInclude`, `@JsonIgnore` 等)控制字段的显示方式。
---
阅读全文
相关推荐







