gpt4 book ai didi

json - spring-mvc 返回原始 json 字符串

转载 作者:行者123 更新时间:2023-12-04 20:06:55 28 4
gpt4 key购买 nike

我希望能够方便地将对象自动序列化为 JSON,并能够返回原始 JSON 字符串。我使用 Gson 而不是 Jackson,因为 Gson 已经在我的应用程序中使用了一段时间,并且我在整个应用程序中都有现有的调整、转换器和注释。

<mvc:annotation-driven >
<mvc:message-converters register-defaults="true">
<bean class="com.test.GSONHttpMessageConverter" />
</mvc:message-converters>
</mvc:annotation-driven>

我可以自动序列化pojo的:

@RequestMapping(value="foo/{name}", method = RequestMethod.GET)
public @ResponseBody Shop getShopInJSON(@PathVariable String name) {
return new Shop();
}

我希望它也能正常工作:

@RequestMapping(value="rawJsonTest/{name}", method = RequestMethod.GET, produces=MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody String rawJsonTest(@PathVariable String name) {
return "{\"test\":5}";

}

现在的结果是一个转义值:

"{\"test\":5}"

代替:

{"test":5}

最佳答案

问题在于您的自定义转换器优先于默认转换器。它因此被称为,将 String 视为必须转换为 JSON 的原始 String,从而转义双引号。

我不确定是否以及如何使用 XML 在默认转换器之后(而不是之前)注册转换器,但您可以将 register-defaults 设置为 false 并提供您想要的所有转换器的显式列表申请。如果 org.springframework.http.converter.StringHttpMessageConverter 在您的自定义之前注册,它将首先被调用并按原样发送返回的字符串。

关于json - spring-mvc 返回原始 json 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20019819/

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