diff --git a/kotlin/reflect/src/main/java/com/squareup/moshi/kotlin/reflect/KotlinJsonAdapter.kt b/kotlin/reflect/src/main/java/com/squareup/moshi/kotlin/reflect/KotlinJsonAdapter.kt index f4a01ac6c..824e6a534 100644 --- a/kotlin/reflect/src/main/java/com/squareup/moshi/kotlin/reflect/KotlinJsonAdapter.kt +++ b/kotlin/reflect/src/main/java/com/squareup/moshi/kotlin/reflect/KotlinJsonAdapter.kt @@ -28,6 +28,7 @@ import com.squareup.moshi.internal.Util.resolve import com.squareup.moshi.rawType import java.lang.reflect.Modifier import java.lang.reflect.Type +import java.util.TreeMap import kotlin.reflect.KClass import kotlin.reflect.KFunction import kotlin.reflect.KMutableProperty1 @@ -230,7 +231,7 @@ public class KotlinJsonAdapterFactory : JsonAdapter.Factory { val parametersByName = constructor.parameters.associateBy { it.name } constructor.isAccessible = true - val bindingsByName = LinkedHashMap>() + val bindingsByName = TreeMap>() for (property in rawTypeKotlin.memberProperties) { val parameter = parametersByName[property.name] diff --git a/kotlin/tests/src/test/kotlin/com/squareup/moshi/kotlin/reflect/KotlinJsonAdapterTest.kt b/kotlin/tests/src/test/kotlin/com/squareup/moshi/kotlin/reflect/KotlinJsonAdapterTest.kt index 3a0424bf4..bacf61655 100644 --- a/kotlin/tests/src/test/kotlin/com/squareup/moshi/kotlin/reflect/KotlinJsonAdapterTest.kt +++ b/kotlin/tests/src/test/kotlin/com/squareup/moshi/kotlin/reflect/KotlinJsonAdapterTest.kt @@ -391,7 +391,7 @@ class KotlinJsonAdapterTest { val encoded = SubtypeProperties() encoded.a = 3 encoded.b = 5 - assertThat(jsonAdapter.toJson(encoded)).isEqualTo("""{"b":5,"a":3}""") + assertThat(jsonAdapter.toJson(encoded)).isEqualTo("""{"a":3,"b":5}""") val decoded = jsonAdapter.fromJson("""{"a":4,"b":6}""")!! assertThat(decoded.a).isEqualTo(4)