diff --git a/jackson-jq/src/main/java/net/thisptr/jackson/jq/internal/tree/ObjectConstruction.java b/jackson-jq/src/main/java/net/thisptr/jackson/jq/internal/tree/ObjectConstruction.java index 597161f4..f7fd64e3 100644 --- a/jackson-jq/src/main/java/net/thisptr/jackson/jq/internal/tree/ObjectConstruction.java +++ b/jackson-jq/src/main/java/net/thisptr/jackson/jq/internal/tree/ObjectConstruction.java @@ -1,7 +1,7 @@ package net.thisptr.jackson.jq.internal.tree; import java.util.ArrayList; -import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -26,7 +26,7 @@ public void add(final FieldConstruction field) { @Override public void apply(final Scope scope, final JsonNode in, final Path ipath, final PathOutput output, final boolean requirePath) throws JsonQueryException { - final Map tmp = new HashMap<>(); + final Map tmp = new LinkedHashMap<>(fields.size()); applyRecursive(scope, in, output, fields, tmp); } diff --git a/jackson-jq/src/test/resources/jq-test-extra-ok.json b/jackson-jq/src/test/resources/jq-test-extra-ok.json index d46ae710..fb9104d5 100644 --- a/jackson-jq/src/test/resources/jq-test-extra-ok.json +++ b/jackson-jq/src/test/resources/jq-test-extra-ok.json @@ -484,7 +484,7 @@ "q": ".num_entries[\"1\"] = 10", "in": {"num_entries": {"2": 20}}, "out": [ - {"num_entries": {"1": 10, "2": 20}} + {"num_entries": {"2": 20, "1": 10}} ] }, { @@ -1036,5 +1036,19 @@ [20, 30], [20, 40] ] + }, + { + "q": "{a: {depth: 1, b: {depth: 2}}}", + "in": null, + "out": [ + { + "a": { + "depth": 1, + "b": { + "depth": 2 + } + } + } + ] } ] diff --git a/jackson-jq/src/test/resources/tests/jq-1.5.yaml b/jackson-jq/src/test/resources/tests/jq-1.5.yaml index cbadbdcd..19b96056 100644 --- a/jackson-jq/src/test/resources/tests/jq-1.5.yaml +++ b/jackson-jq/src/test/resources/tests/jq-1.5.yaml @@ -844,7 +844,7 @@ - q: '.foo = .bar' in: {"bar": 42} out: - - {"foo": 42, "bar": 42} + - {"bar": 42, "foo": 42} v: '[1.5, 1.5]' - q: '.foo |= .+1' in: {"foo": 42} diff --git a/jackson-jq/src/test/resources/tests/jq-1.6.yaml b/jackson-jq/src/test/resources/tests/jq-1.6.yaml index 18064a8f..8ec7ba27 100644 --- a/jackson-jq/src/test/resources/tests/jq-1.6.yaml +++ b/jackson-jq/src/test/resources/tests/jq-1.6.yaml @@ -1047,7 +1047,7 @@ - q: '.foo = .bar' in: {"bar": 42} out: - - {"foo": 42, "bar": 42} + - {"bar": 42, "foo": 42} v: '[1.6, 1.6]' - q: '.foo |= .+1' in: {"foo": 42}