From e826b1763a7b785290dbdd5d6160062b2211943b Mon Sep 17 00:00:00 2001 From: Abhishek Tiwari Date: Tue, 19 Mar 2024 05:43:41 +0000 Subject: [PATCH] Add support for trailing newline character in path to evaluate on a json --- .../jayway/jsonpath/internal/JsonContext.java | 2 +- .../java/com/jayway/jsonpath/Issue_1001.java | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 json-path/src/test/java/com/jayway/jsonpath/Issue_1001.java diff --git a/json-path/src/main/java/com/jayway/jsonpath/internal/JsonContext.java b/json-path/src/main/java/com/jayway/jsonpath/internal/JsonContext.java index 76985f784..a0cc670e0 100644 --- a/json-path/src/main/java/com/jayway/jsonpath/internal/JsonContext.java +++ b/json-path/src/main/java/com/jayway/jsonpath/internal/JsonContext.java @@ -74,7 +74,7 @@ public String jsonString() { @Override public T read(String path, Predicate... filters) { notEmpty(path, "path can not be null or empty"); - return read(pathFromCache(path, filters)); + return read(pathFromCache(path.trim(), filters)); } @Override diff --git a/json-path/src/test/java/com/jayway/jsonpath/Issue_1001.java b/json-path/src/test/java/com/jayway/jsonpath/Issue_1001.java new file mode 100644 index 000000000..702335b1c --- /dev/null +++ b/json-path/src/test/java/com/jayway/jsonpath/Issue_1001.java @@ -0,0 +1,20 @@ +package com.jayway.jsonpath; + +import org.junit.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +public class Issue_1001 { + @Test + public void testTrailingNewlineInPath() { + String context = "{\n" + + " \"level_0\": {\n" + + " \"level_1\": {\n" + + " \"level_2\": \"At level 2\"\n" + + " }\n" + + " }\n" + + "}"; + String result = JsonPath.read(context, "$.level_0.level_1.level_2\n"); + assertThat(result).isEqualTo("At level 2"); + } +}