Skip to content

Commit 601fd60

Browse files
committed
$string must escape special chars in field names #74
1 parent 0645e7b commit 601fd60

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

src/main/java/com/dashjoin/jsonata/Functions.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ static void string(StringBuilder b, Object arg, boolean prettify, String indent)
231231
b.append(" ");
232232
}
233233
b.append('"');
234-
b.append(e.getKey());
234+
Utils.quote(e.getKey(), b);
235235
b.append('"');
236236
b.append(':');
237237
if (prettify)

src/test/java/com/dashjoin/jsonata/StringTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,4 +140,11 @@ public void replaceTest() {
140140
Assertions.assertEquals("http://example.org/test",
141141
jsonata("$replace($, /{par}/, '')").evaluate("http://example.org/test{par}"));
142142
}
143+
144+
@Test
145+
public void testFieldnameWithSpecialChar() {
146+
Jsonata expr = jsonata("$ ~> |$|{}|");
147+
Object o = Map.of("a\nb", "c\nd");
148+
Assertions.assertEquals(o, expr.evaluate(o));
149+
}
143150
}

0 commit comments

Comments
 (0)