gpt4 book ai didi

java - 在 Spring Controller 中返回原始类型/包装器的最佳方法是什么?

转载 作者:行者123 更新时间:2023-11-30 05:23:06 26 4
gpt4 key购买 nike

当我从 Spring Controller 返回 Integer 或其他包装器时,如下所示:

@GetMapping(path = "test1")
public Integer test1() {
return 1;
}

对用户的响应具有以下正文:

1

这不是有效的 JSON。是否有关于如何返回这些值的实践?问题是我希望所有 API 返回有效的 JSON。我创建了一个返回的包装器:

{
"value": 1
}

但是,也许有更好的方法来解决这些情况?

最佳答案

如果返回值以纯文本形式返回,例如一个String返回时不带双引号,则以下情况为 true:

  • 您使用@RestController@ResponseBody

  • 您的代码未指定响应内容类型

  • 与 JSON 响应相比,客户端更喜欢文本响应

要强制响应 JSON,您需要通过指定告诉 Spring:

@GetMapping(path = "test1", produces = "application/json")

@GetMapping(path = "test1", produces = MediaType.APPLICATION_JSON_VALUE)
<小时/>

由于您的响应只是一个数字,因此您可以通过指定例如来确定它只是一个数字,而不是 JSON。 text/plain作为响应内容类型。与任何其他响应一样,由客户端正确解释响应值。

但是,简单的 1 字节响应 1 是有效的 JSON,因此您可以保留它,或者您可以执行 { "value": 1 } JSON 响应(如果需要)。这是您的 API,因此您可以决定响应格式。

只要记住记录下来,这样无论谁编写客户端代码都会知道会发生什么。

关于java - 在 Spring Controller 中返回原始类型/包装器的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59183086/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com