繁体   English   中英

如何在 Java Spring 中处理可选和额外的 json 参数?

[英]How do I handle optional and extra json parameters in Java Spring?

因此,当提供 Java Spring Boot 中内置的 JSON/HTTP API 并尝试读取 POST 到我的服务中的 JSON 对象时,我使用 @RequestBody 读取此输入并将其自动解析为可用的 Java 对象。

但是,我试图弄清楚如何最好地保持接口在微服务之间的接口中随着时间的推移而不会发生变化。

  1. 如何处理请求者在请求 JSON 有效负载中提供的可选和额外(未使用)参数的情况? 也许这是我以前需要并且不再需要的字段,但是请求者尚未更新。 在弱类型语言中,这些往往被忽略。 但我不确定这在 Java 中是如何工作的

  2. 作为使用 WebClient 的请求者,我如何处理我调用的服务返回我不需要但也没有预料到的额外字段的情况?

如果您想忽略从应用程序的角度来看未知的 JSON 属性,您可以在类声明上方使用注释@JsonIgnoreProperties(ignoreUnknown = true) ,例如

@JsonIgnoreProperties(ignoreUnknown = true)
public class MyDto{}

这对 WebClient 和服务器都有效。

您可以将 json 配置设置为忽略 null 甚至是空字段,如下所示:

 ObjectMapper objectMapper = new ObjectMapper(); objectMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM