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

如何使用谷歌Gson而不是默认的Jackson的Spring大摇大摆?

马国源
2023-03-14

我在一个项目中工作,我想用Swagger来记录它。是一个用Spring Boot实现的项目,我们使用库“com.google.code.Gson”而不是默认的SpringBoot“Jackson”,但是用Gson Swagger不起作用。

{"value":"{\"swagger\":\"2.0\",\"info\":{\"description\":

杰克逊返回如下:

{"swagger":"2.0","info":{"description"

有人知道我怎么才能让Gson工作吗?

共有1个答案

颜实
2023-03-14

Spring Boot默认使用Jackson,以便序列化和反序列化REST API中的请求和响应对象。如果希望使用GSON而不是Jackson,那么可以在pom.xml或build.gradle文件中添加GSON依赖项,并在application.properties文件中指定一个属性,告诉Spring Boot使用GSON作为首选的json映射器。

# Preferred JSON mapper to use for HTTP message conversion.
spring.http.converters.preferred-json-mapper=gson

你只需要这么做!

 类似资料:
  • Spring Boot 1.4.2参考声明: Springhttp。转换器。首选json映射器=jackson#用于HTTP消息转换的首选json映射器。设置为“gson”以强制使用gson 我们做到了。 我们为首选json映射器设置了gson 但杰克逊还是被利用了。 最后,在排除了Maven中所有向Jackson指出的可传递依赖项之后,我们设法强制Spring Boot使用Gson。 现在的问题

  • 我试图使用Gson发送JsonObjects作为响应。这些JsonObjects是手工构造的,而不是使用objectMapper或GSON。我排除了所有与杰克逊有关的依赖关系。它工作得很好很好。后来,我尝试使用SpringFox添加Swagger文档。现在它抛出以下异常:

  • 我花了过去的一天,试图找到一个解决办法,但没有找到任何在线资源,解决了这个问题。 我使用Gson为我的应用程序进行消息转换,它在单元测试之外工作得很好。我甚至添加了bean以优先于Jackson而不是将配置值写入。这只在运行应用程序时起作用。 现在我的问题是,如何使用的Gson序列化/反序列化?我有一个带有批注的类,它的值与实际名称不同。我最接近找到答案的是下面的一个,但没有任何帮助: https

  • 我正在用Spring(无Spring Boot)构建一个Java客户端,并且必须使用Gson。 我如何告诉Spring使用Gson而不是Jackson? 为了澄清,我使用了反应式WebClient: Pojo应该是这样的: 服务器中的Json是这样的:

  • 有没有人用spring-data-rest配置了swagger。我知道swagger有DocumentationConfig类,它扫描所有spring-mvc请求映射。但是,如何将其用于spring-data-rest,因为没有定义显式的请求映射。非常感谢在这方面的任何帮助。此外,我还想知道,是否有其他支持Spring-Data-REST的文档框架。

  • Zuul如何在超文本传输协议上大摇大摆://foo-service: 8080可以正确地从http://public.com/foo-service进行外部访问? 我的任务是用nginx替换Zuul(这不是我的决定,我不能改变它)。我用nginx重写http://public.com/foo-service/names-controller/swagger-ui.html到http://foo-s