如何使用json-path库检查密钥是否存在?

时间:2019-12-10 05:07:47

标签: rest-assured rest-assured-jsonpath

我正在使用Json Path库,我想检查密钥是否存在,然后我将执行一些操作。因此,我编写了以下代码-

for(int i = 0; i < keyValues.length; i++) {
  List<String> invalidKeys = new ArrayList<>();

  if(Objects.isNull(jsonPath.getString(key))) {
     invalidKeys.add(key);
     continue;
  }else {
     value = keyValues[i].split("=")[1];
  }
}

我打算获取在json中不存在但使用此代码的密钥,如果密钥的值为null,也将其视为不存在的密钥。有什么办法可以修改上面的代码以仅获取json中不存在的键?

1 个答案:

答案 0 :(得分:0)

您可以使用jsonPath来构建JSONObject:

JSONObject jsonObject = new JSONObject(jsonPath.prettify());

然后您可以使用此jsonObject检查密钥是否存在:

for(int i = 0; i < keyValues.length; i++) {
  List<String> invalidKeys = new ArrayList<>();

  if(!jsonObject.has(key)) {
     invalidKeys.add(key);
     continue;
  }else {
     value = keyValues[i].split("=")[1];
  }
}