java - Spring Controller -HashMap返回

标签 java spring

我有一个非常基本的 REST Controller ...

@RestController
@CrossOrigin(origins = "*")
@RequestMapping(value = "/signKey", produces = "application/json")
public class SignKeyController {

@Autowired
private SignKeyService signKeyService;

@GetMapping(value = "/generate")
public ResponseEntity<?> generateSignKey() {
    String signKeyToken = signKeyService.generateNewToken();
    Map<String, String> data = new HashMap<>();
    data.put("signKey", signKeyToken);
    return new ResponseEntity<>(data, HttpStatus.OK);
}

}

返回

{
"signKey": "_IjAY736MvwKZLtoJHrhNaD4MUL2r0Al"
}

但是因为我想向前端返回一个 json 对象,而不是仅返回一个字符串,所以我创建了一个 HashMap 。 这段代码工作正常,但我觉得应该有更好的方法......

在这种情况下,我不想创建模型或任何东西。这是一个字符串的简单返回。我真的需要继续在 Controller 中创建仅返回一些不在任何模型中的数据的 HashMap 吗?

有什么帮助吗?

最佳答案

如果这有帮助, 您可以使用JSONObject用于放置值而不是模型类。

示例 -

import org.json.simple.JSONObject;

@RestController
@CrossOrigin(origins = "*")
@RequestMapping(value = "/signKey", produces = "application/json")
public class SignKeyController {

@Autowired
private SignKeyService signKeyService;

@GetMapping(value = "/generate")
public ResponseEntity<?> generateSignKey() {
  String signKeyToken = signKeyService.generateNewToken();
  JSONObject data = new JSONObject();
  data.put("signKey", signKeyToken);
  return new ResponseEntity<>(data, HttpStatus.OK);
 }
}

编辑:这是使用 JSONObject Vs HashMap 的链接

关于java - Spring Controller -HashMap返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60301404/

相关文章:

java - 使用 Spring 和 Jackson 进行错误处理

java - 将 Java 对象序列化为 Java 代码?

java - 加载大量文本时在 JavaFX 2 中加速 TextArea 的方法?

java - 扫描 PDF 并转换为缓冲图像以解码 QR 时出现 Zxing 格式异常

java - 如何解决 StreamCorruptedException : invalid stream header in java?

java - 如何从这个 Spring MVC Controller 返回错误状态和验证错误?

java - Spring Data JPA - 按 Id 绑定(bind)而不是对象

java - Spring拦截器没有被调用

java - 动态选择依赖关系,无需 if else

Android 客户端使用 Spring 连接到 websocket 服务器