Browse Source

fix issue #425 and add test cases.

pull/828/head
Nancyzxy 2 years ago
parent
commit
b12f1faf30
  1. 10
      json-path/src/main/java/com/jayway/jsonpath/JsonPath.java
  2. 25
      json-path/src/test/java/com/jayway/jsonpath/Issue_425.java

10
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

25
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));
}
}
Loading…
Cancel
Save