diff --git a/nifi-nar-bundles/nifi-extension-utils/nifi-record-utils/nifi-json-record-utils/src/main/java/org/apache/nifi/json/AbstractJsonRowRecordReader.java b/nifi-nar-bundles/nifi-extension-utils/nifi-record-utils/nifi-json-record-utils/src/main/java/org/apache/nifi/json/AbstractJsonRowRecordReader.java index b024beed6c4b..59f12770e902 100644 --- a/nifi-nar-bundles/nifi-extension-utils/nifi-record-utils/nifi-json-record-utils/src/main/java/org/apache/nifi/json/AbstractJsonRowRecordReader.java +++ b/nifi-nar-bundles/nifi-extension-utils/nifi-record-utils/nifi-json-record-utils/src/main/java/org/apache/nifi/json/AbstractJsonRowRecordReader.java @@ -43,8 +43,8 @@ import java.io.InputStream; import java.text.DateFormat; import java.util.Collections; -import java.util.HashMap; import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.function.BiPredicate; @@ -119,7 +119,7 @@ protected AbstractJsonRowRecordReader(final InputStream in, this.strategy = strategy; this.captureFieldPredicate = captureFieldPredicate; - capturedFields = new HashMap<>(); + capturedFields = new LinkedHashMap<>(); try { jsonParser = jsonFactory.createParser(in); @@ -306,7 +306,7 @@ private Map getMapFromRawValue(final JsonNode fieldNode, final D final MapDataType mapDataType = (MapDataType) dataType; final DataType valueType = mapDataType.getValueType(); - final Map mapValue = new HashMap<>(); + final Map mapValue = new LinkedHashMap<>(); final Iterator> fieldItr = fieldNode.fields(); while (fieldItr.hasNext()) { @@ -372,7 +372,7 @@ private Record createOptionalRecord(final JsonNode fieldNode, final DataType dat private Record createRecordFromRawValue(final JsonNode fieldNode, final RecordSchema childSchema) throws IOException { final Iterator fieldNames = fieldNode.fieldNames(); - final Map childValues = new HashMap<>(); + final Map childValues = new LinkedHashMap<>(); while (fieldNames.hasNext()) { final String childFieldName = fieldNames.next(); diff --git a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/json/TestJsonTreeRowRecordReader.java b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/json/TestJsonTreeRowRecordReader.java index e8b0b6c48ca0..1f77aa6318a9 100644 --- a/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/json/TestJsonTreeRowRecordReader.java +++ b/nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/json/TestJsonTreeRowRecordReader.java @@ -423,7 +423,7 @@ void testReadRawRecordFieldOrderPreserved() throws IOException, MalformedRecordE fields.add(new RecordField("id", RecordFieldType.INT.getDataType())); final RecordSchema schema = new SimpleRecordSchema(fields); - final String expectedMap = "{id=1, name=John Doe, address=123 My Street, city=My City, state=MS, zipCode=11111, country=USA, account=MapRecord[{balance=4750.89, id=42}]}"; + final String expectedMap = "{id=1, name=John Doe, address=123 My Street, city=My City, state=MS, zipCode=11111, country=USA, account=MapRecord[{id=42, balance=4750.89}]}"; final String expectedRecord = String.format("MapRecord[%s]", expectedMap); try (final InputStream in = new FileInputStream("src/test/resources/json/single-element-nested.json"); final JsonTreeRowRecordReader reader = new JsonTreeRowRecordReader(in, mock(ComponentLog.class), schema, dateFormat, timeFormat, timestampFormat)) {