diff --git a/src/main/java/com/dashjoin/jsonata/Jsonata.java b/src/main/java/com/dashjoin/jsonata/Jsonata.java index 8c05661..9a7201a 100644 --- a/src/main/java/com/dashjoin/jsonata/Jsonata.java +++ b/src/main/java/com/dashjoin/jsonata/Jsonata.java @@ -432,7 +432,7 @@ Frame createFrameFromTuple(Frame environment, Map tuple) { ((JList)result).tupleStream = true; var stepEnv = environment; if(tupleBindings == null) { - tupleBindings = (List) input.stream().filter(item -> item!=null).map(item -> Map.of("@", item)).collect(Collectors.toList()); + tupleBindings = (List) input.stream().map(item -> Utils.mapOf("@", item)).collect(Collectors.toList()); } for(var ee = 0; ee < tupleBindings.size(); ee++) { diff --git a/src/main/java/com/dashjoin/jsonata/Utils.java b/src/main/java/com/dashjoin/jsonata/Utils.java index 60bd81c..5443290 100644 --- a/src/main/java/com/dashjoin/jsonata/Utils.java +++ b/src/main/java/com/dashjoin/jsonata/Utils.java @@ -20,6 +20,7 @@ import java.util.AbstractList; import java.util.ArrayList; import java.util.Collection; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -268,5 +269,14 @@ public static void quote(String string, StringBuilder w) { } } } - } + } + + /** + * version of Map.of(key, value) that allows value to be null + */ + static Map mapOf(String key, Object value) { + Map map = new HashMap<>(); + map.put(key, value); + return map; + } } diff --git a/src/test/java/com/dashjoin/jsonata/ArrayTest.java b/src/test/java/com/dashjoin/jsonata/ArrayTest.java index 2df319b..59877e3 100644 --- a/src/test/java/com/dashjoin/jsonata/ArrayTest.java +++ b/src/test/java/com/dashjoin/jsonata/ArrayTest.java @@ -29,7 +29,6 @@ public void filterTest() { Assertions.assertNotNull(expr.evaluate(Map.of("variable", Map.of("field", "1")))); } - @Disabled @Test public void testIndex() { Jsonata expr = jsonata("($x:=['a','b']; $x#$i.$i)");