diff --git a/src/main/kotlin/fr/postgresjson/connexion/Connection.kt b/src/main/kotlin/fr/postgresjson/connexion/Connection.kt index 000f0cd..27a60f4 100644 --- a/src/main/kotlin/fr/postgresjson/connexion/Connection.kt +++ b/src/main/kotlin/fr/postgresjson/connexion/Connection.kt @@ -205,7 +205,7 @@ class Connection( private fun compileArgs(values: List): List { return values.map { - if (it is Serializable) { + if (it is Serializable || (it is List<*> && it.firstOrNull() is Serializable)) { serializer.serialize(it) } else { it diff --git a/src/main/kotlin/fr/postgresjson/serializer/Serializer.kt b/src/main/kotlin/fr/postgresjson/serializer/Serializer.kt index 52a339d..a8df7e4 100644 --- a/src/main/kotlin/fr/postgresjson/serializer/Serializer.kt +++ b/src/main/kotlin/fr/postgresjson/serializer/Serializer.kt @@ -49,5 +49,6 @@ class Serializer(val mapper: ObjectMapper = jacksonObjectMapper()) { } fun Serializable.serialize(pretty: Boolean = false) = Serializer().serialize(this, pretty) +fun List.serialize(pretty: Boolean = false) = Serializer().serialize(this, pretty) inline fun E.deserialize(json: String) = Serializer().deserialize(json, this) inline fun String.deserialize() = Serializer().deserialize(this) \ No newline at end of file diff --git a/src/test/kotlin/fr/postgresjson/SerializerTest.kt b/src/test/kotlin/fr/postgresjson/SerializerTest.kt index f222fb7..dac2d2b 100644 --- a/src/test/kotlin/fr/postgresjson/SerializerTest.kt +++ b/src/test/kotlin/fr/postgresjson/SerializerTest.kt @@ -41,6 +41,14 @@ internal class SerializerTest { assertTrue(json.contains(""""val1":"plop","val2":123""")) } + @Test + fun serializeList() { + val list = listOf(ObjTest("one", 1), ObjTest("two", 2)) + val json = list.serialize() + assertTrue(json.contains(""""val1":"one","val2":1""")) + assertTrue(json.contains(""""val1":"two","val2":2""")) + } + @Test fun serializeDate() { val objDate = ObjTestDate(DateTime.parse("2019-07-30T14:08:51.420108+04:00"))