1

我将收到以下对我的服务的 JSON 请求。

{
  "city" : "Hyderabad",
  "state" : "Telangana",
  "country" : "India"
}

有时在请求中,我可能没有得到城市字段或城市字段可能为空,这不是预期的。所以,我正在通过以下方式处理它:

有效负载是我的请求 JSON。

if ( payload.has("city") && !payload.get("city").equals("") )

我正在按照上述方式处理它。但问题是,如果我再次添加新的强制,那么我需要添加另外两个条件:

if ( payload.has("city") && !payload.get("city").equals("") && payload.has("newKey") && !payload.get("newKey").equals("") )
  1. 检查密钥是否可用。
  2. 检查值是否不为空。

    有没有解决这个问题的最佳实践?
4

1 回答 1

0

我会将 JSON 有效负载反序列化为一个对象,然后您可以根据需要使用 getter 的组合。

MyObj toValue = mapper.readValue(parser, MyObj.class);

如果您想坚持原来的方法,我会创建一些辅助方法以使其更具可读性:

private boolean hasCity(String payload) {
   return payload.has("city") && !payload.get("city").equals("");
}
于 2020-01-15T09:20:07.190 回答