当前位置: 首页 > 知识库问答 >
问题:

在Spring Web API中,有一种简单的方法可以将string作为json返回?

微生智刚
2023-03-14

例如,我必须实现如下:

@RequestMapping(value = "/get-string", method = {RequestMethod.GET})
public @ResponseBody String getString() {
    return "Hello World!";
}

我的问题是:有一个干净的方法我可以做到这一点,而不是仅仅改变为下面的字符串返回的字符串?

    ...
    return "\"Hello World!\"";
}

更新说明:在这个问题的时间里,我对返回一个JSON映射而不是一个字符串的解决方案感到满意,就像我之前想要的那样。

但是现在,我花了一些时间对此进行了研究,并试图了解更多关于JSON模式的信息。

...
spring.http.converters.preferred-json-mapper=gson

这样,您就不必在每次要发送要由Spring Boot序列化的字符串值时都进行解析,并且在AJAX处理程序上没有双引号就不接收它。

我试图实现与ASP.NET MVC相同的行为,它使用JSON.NET库执行序列化。这一点以及AJAX接受单个字符串(例如“Hello World”)作为JSON的事实,使我对JSON模式进行了更深入的研究。

JSON格式的“标准”定义不止一个。正如关于这个堆栈的另一个问题所讨论的,当前的JSON值的“Internet标准”是由RFC-8259定义的,正如文档第5页所说的:

    null

更新注意:另一种选择是返回一个char[]而不是字符串实例。这样,Spring Boot将不会识别为原始JSON字符串:

@RequestMapping(value = "/get-string", method = {RequestMethod.GET})
public @ResponseBody char[] getString() {
    return "Hello World!".toCharArray();
}

共有1个答案

冯枫
2023-03-14

是的,您可以使用gson或jackson这样的库将字符串转换为JSON,在那里,您可以得到如下所示的JSON输出。

Gson gson= new GsonBuilder().create();
    gson.toJson(Your String);

此外,不要忘记将production=mediatype.application_json_value添加到公开的方法中,以便spring知道需要生成哪种O/P。

 类似资料:
  • 问题内容: 我正在尝试将字符串转换为。我不是在尝试解析主机名:字符串是ipv4地址。有工作吗?还是我必须手动解析它? 问题答案: 这样做更好,因为无论传递什么字符串,它都不会进行DNS查找。

  • 问题内容: 我的问题实质上是对该问题的后续行动。 在上面,Spring将“ Hello World”添加到响应正文中。如何返回字符串作为JSON响应?我知道我可以添加引号,但这感觉更像是黑客。 请提供任何示例以帮助解释此概念。 注意:我不希望将其直接写到HTTP响应正文中,我想以JSON格式返回字符串(我将控制器与RestyGWT一起使用,这要求响应必须为有效JSON格式)。 问题答案: 返回(例

  • 问题内容: 在PHP中,有没有一种简单的方法可以将数字转换为单词?举例来说, 27 到 27 。 问题答案: 我在网上找到了一些(2007/2008)源代码,它具有版权,但是我可以自由使用它,并根据需要对其进行修改,因此将其放在此处并在CC-Wiki下重新许可:

  • 问题内容: 我正在建立一个带有flask的网站,其中用户具有帐户并能够登录。我正在使用flask-principal作为登录部分和角色管理。有没有办法让用户的会话在5分钟或10分钟后过期?我在flask文档或flask-principal文档中找不到该文件。 我想到了一种手动方法,在登录时在服务器端设置一个带有时间标签的变量,并在用户执行下一个操作时,服务器会验证该时间戳记上的时间增量并删除会话。

  • 问题内容: 有很多示例可以使用jQuery在javascript/dom中实现某些功能。但是,使用jQuery并非总是一种选择,它会使理解jQuery编写的javascript解决方案的示例变得困难。 有没有一种简单的方法可以将jQuery代码转换为常规javascript?我猜不必访问或理解jQuery源代码。 问题答案: 最简单的方法是仅学习如何使用普通的DOM api进行DOM遍历和操作(您

  • 问题内容: 我非常喜欢Visual Studio在完成已编写的代码和所引用的ALSO代码(各种库/程序集)时为您提供注释文档/参数名称的方式。 在完成代码或将方法悬停在方法上时,是否有一种简单的方法可以在Eclipse中获取内联javadoc /参数名称?通过插件?通过某些设置?使用大量的库(就像在Java中经常发生的那样)然后当您将其放在源jar中时,必须去网站或本地javadoc位置查找信息,