From b12f1faf3025a4aff6a5f1bd6f330d76f9de3d89 Mon Sep 17 00:00:00 2001 From: Nancyzxy <11912039@mail.sustech.edu.cn> Date: Wed, 18 May 2022 00:22:56 +0800 Subject: [PATCH] fix issue #425 and add test cases. --- .../java/com/jayway/jsonpath/JsonPath.java | 10 +++++++- .../java/com/jayway/jsonpath/Issue_425.java | 25 +++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 json-path/src/test/java/com/jayway/jsonpath/Issue_425.java diff --git a/json-path/src/main/java/com/jayway/jsonpath/JsonPath.java b/json-path/src/main/java/com/jayway/jsonpath/JsonPath.java index 01c7db03..a4a4ba20 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/JsonPath.java +++ b/json-path/src/main/java/com/jayway/jsonpath/JsonPath.java @@ -112,7 +112,15 @@ public class JsonPath { public static boolean isPathDefinite(String path) { return compile(path).isDefinite(); } - + public static boolean isPathValid(String json,String path){ + try{ + JsonPath.parse(json).read(path); + return true; + } + catch (PathNotFoundException e){ + return false; + } + } /** * Checks if a path points to a single item or if it potentially returns multiple items diff --git a/json-path/src/test/java/com/jayway/jsonpath/Issue_425.java b/json-path/src/test/java/com/jayway/jsonpath/Issue_425.java new file mode 100644 index 00000000..d26d05d7 --- /dev/null +++ b/json-path/src/test/java/com/jayway/jsonpath/Issue_425.java @@ -0,0 +1,25 @@ +package com.jayway.jsonpath; + + +import org.junit.Test; + +/** + * test for issue 425 + */ +public class Issue_425 { + + @Test + public void testCheckPathFunction() { + Boolean valid= JsonPath.isPathValid("{\n" + + " \"a\": [1,2,3],\n" + + " \"b\": [4,5,6]\n" + + "}", "$.c"); + assert (valid.equals(Boolean.FALSE)); + valid= JsonPath.isPathValid("{\n" + + " \"a\": [1,2,3],\n" + + " \"b\": [4,5,6]\n" + + "}", "$.a"); + assert (valid.equals(Boolean.TRUE)); + } +} +