JsonFinder { public boolean hasJsonObject( String locatorExpression, JsonObject jsonObject) { if (!locatorExpression.contains(">")) { return jsonObject.containsKey(locatorExpression); } int sublocationEndIdx = locatorExpression.indexOf(">"); String sublocation = locatorExpression.substring(0, sublocationEndIdx); if (jsonObject.containsKey(sublocation)) { return hasJsonObject( locatorExpression.substring(sublocationEndIdx + 1), jsonObject.getJsonObject(sublocation)); } return false; }  JsonArray getDescendantJsonArray(
		String locatorExpression, JsonObject jsonObject); JsonObject getDescendantJsonObject(
		String locatorExpression, JsonObject jsonObject); JsonValue getDescendantJsonValue(
		String locatorExpression, JsonObject jsonObject); boolean hasJsonObject(
		String locatorExpression, JsonObject jsonObject);  }
@Test public void testHasJsonObject() { JsonFinder jsonFinder = new JsonFinder(); JsonObject jsonObject = readObject("openapi.json"); Assert.assertFalse( "Expect path \"invalid>path\" is invalid", jsonFinder.hasJsonObject("invalid>path", jsonObject)); Assert.assertFalse( "Expect empty path is invalid", jsonFinder.hasJsonObject("", jsonObject)); Assert.assertFalse( "Expect path \"invalid\" is invalid", jsonFinder.hasJsonObject("invalid", jsonObject)); Assert.assertTrue( "Expect path \"info\" is valid", jsonFinder.hasJsonObject("info", jsonObject)); Assert.assertTrue( "Expect path \"info>description\" is valid", jsonFinder.hasJsonObject("info>description", jsonObject)); }