diff --git a/fastjson1-compatible/src/main/java/com/alibaba/fastjson/JSONPath.java b/fastjson1-compatible/src/main/java/com/alibaba/fastjson/JSONPath.java index 5e04ff9302..cf444bc22a 100644 --- a/fastjson1-compatible/src/main/java/com/alibaba/fastjson/JSONPath.java +++ b/fastjson1-compatible/src/main/java/com/alibaba/fastjson/JSONPath.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.util.TypeUtils; import com.alibaba.fastjson2.JSONReader; + import java.lang.reflect.Type; import java.util.Map; @@ -52,6 +53,11 @@ public static Object eval(Object rootObject, String path) { return jsonPath.eval(rootObject); } + public static Object eval(String rootObject, String path) { + com.alibaba.fastjson2.JSONPath jsonPath = com.alibaba.fastjson2.JSONPath.of(path); + return jsonPath.extract(rootObject); + } + public static boolean set(Object rootObject, String path, Object value) { com.alibaba.fastjson2.JSONPath jsonPath = com.alibaba.fastjson2.JSONPath.of(path); jsonPath.setReaderContext(JSON.createReadContext(JSON.DEFAULT_PARSER_FEATURE)); diff --git a/fastjson1-compatible/src/test/java/com/alibaba/fastjson/issue_2300/Issue2387Test.java b/fastjson1-compatible/src/test/java/com/alibaba/fastjson/issue_2300/Issue2387Test.java new file mode 100644 index 0000000000..70fbf453f7 --- /dev/null +++ b/fastjson1-compatible/src/test/java/com/alibaba/fastjson/issue_2300/Issue2387Test.java @@ -0,0 +1,30 @@ +package com.alibaba.fastjson.issue_2300; + +import org.junit.jupiter.api.Test; + + +import static org.junit.jupiter.api.Assertions.*; +import com.alibaba.fastjson.JSONPath; + +public class Issue2387Test { + @Test + public void test_for_issue() throws Exception { + String data = "{\"userName\":\"testname\"}"; + Object userName1 = JSONPath.eval(data, "$.userName"); + assertEquals(userName1, "testname"); + } + + @Test + public void test_not_matching() { + String data = "{\"userName\":\"testname\"}"; + Object userName1 = JSONPath.eval(data, "$.userName"); + assertNotEquals(userName1, "testname1"); + } + + @Test + public void test_null() throws Exception { + String data = "{\"userName\":null}"; + Object userName1 = JSONPath.eval(data, "$.userName"); + assertNull(userName1); + } +}