我有一个非常基本的 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/