簡體   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