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

在spring mvc@ResponseBody中返回文字JSON字符串

裴建华
2023-03-14

我将对象作为JSON字符串存储在数据库中。我想制作一个公开这些字符串的REST服务。然而,当我编写方法时,我返回的字符串中的引号被转义了。例如,我包含了一个返回字符串的方法,

@RequestMapping(value = "test", method = RequestMethod.GET)
public @ResponseBody
String getTest() {
    return "{\"a\":1, \"b\":\"foo\"}";
}
{
  "value" : "{\"a\":1, \"b\":\"foo\"}"
}
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    super.configureMessageConverters(converters);
    converters.add(mappingJacksonHttpMessageConverter());
}

@Bean
MappingJacksonHttpMessageConverter mappingJacksonHttpMessageConverter() {
    MappingJacksonHttpMessageConverter mappingJacksonHttpMessageConverter = new MappingJacksonHttpMessageConverter();
    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL);
    mappingJacksonHttpMessageConverter.setObjectMapper(objectMapper);
    mappingJacksonHttpMessageConverter.setPrettyPrint(true);
    return mappingJacksonHttpMessageConverter;
}
public static class Wrapper {

    @JsonRawValue
    private final String value;
}

共有1个答案

通飞尘
2023-03-14

这在Jackson 2中起作用(至少):

@Controller
public class YourController {

    @RequestMapping(..)
    public @ResponseBody Json get() {
        return new Json("{ \"attr\" : \"value\" }");
    }
}

class Json {

    private final String value;

    public Json(String value) {
        this.value = value;
    }

    @JsonValue
    @JsonRawValue
    public String value() {
        return value;
    }
}

不是特别漂亮但很管用。我只希望Spring支持这一点:

@RequestMapping(..)
public @JsonRawValue @ResponseBody String get() {
    // ...
}
 类似资料:
  • 问题内容: 我在SpringMVC项目中将新的Java API(JSR 353)用于JSON。 这个想法是生成一些Json数据并将其返回给客户端。我所拥有的控制器看起来像这样: 当我访问它时,我没有得到JSON的预期表示,而是得到了这些: 为什么是这样?到底是怎么回事?以及如何使其正确返回预期的JSON? 问题答案: 当您意识到新的JSR 353 API 没有特殊要求时,答案很简单。相反,在这种情

  • 本文向大家介绍使用SpringMVC返回json字符串的实例讲解,包括了使用SpringMVC返回json字符串的实例讲解的使用技巧和注意事项,需要的朋友参考一下 最近开始接触SpringMVC这个框架,这个框架使用起来很方便,框架搭起来之后,写起代码几乎都是一个模式。当然要走到这一步必须保证你的SpringMVC的相关配置都已经完成,并且配置正确! 作为我的关于S平ringMVC的首篇博客,本篇

  • 问题内容: 我想构建自己的JSON,并让服务返回一个字符串,这是代码 我得到的响应包含用于在c#中的字符串中创建\的\“。 以下是响应。 值已正确编码,但json本身未正确格式化。这些导致它破烂不堪。 我该如何返回一个字符串,而在’的前面没有\呢? 问题答案: 目前,您的网络方法与一起返回。它遵循字符串的JSON编码。对应于www.json.org,字符串中的所有双引号将使用反斜杠转义。因此,您目

  • 问题内容: 我正在开发一个使用JSON进行服务器通信的Android应用,当我尝试解析json文件时遇到了一个奇怪的问题。 这是我来自服务器的json 我通过调用地址Json-object 获得City的价值。对于这种情况,我期望为空(这是optString的意思吗?),但实际上它包含字符串“ null”。因此,进一步的null或isEmpty- checks将返回false,因为String包含

  • 问题内容: 我创建了一个Web服务,该服务返回。这必须能够返回工作正常的。但它也应该能够返回。知道如何使用来传送A 吗? 问题答案: JavaMail具有一个可用于此目的的: mime类型中的in决定它将字符串转换为字节时使用的编码方式。

  • 我正在开发一个使用JSON进行服务器通信的Android应用程序,当我试图解析我的json文件时,我遇到了一个奇怪的问题。 这是来自服务器的json 我通过调用字符串City=address来获取City的值。我的地址Json对象上的optString(“city”,“”)。对于这种情况,我希望城市是空的(这就是optString在这里的目的,不是吗?)但实际上它包含字符串“null”。因此,进一