kotlinx.serialization icon indicating copy to clipboard operation
kotlinx.serialization copied to clipboard

False positive successful json parsing

Open kunyavskiy opened this issue 2 years ago • 0 comments

To Reproduce

@Serializable
 data class FalsePositive(
    val key1: Map<String, String>,
    val key2: Map<String, String>,
)

class TestFalsePositive {
    @Test
    fun testFalsePositive() {
        Json.decodeFromString<FalsePositive>(
            """
            {
              "key1": {
              }
              "key2": {
              }
            }""".trimIndent()
        )
    }
}

Expected behavior

Test should fail, it is not valid json (no comma after key1 object) , but it passes

Environment

  • Kotlin version: 1.9.20
  • Library version: 1.6.2 (also reproducible by 1.6.1)
  • Kotlin platforms: JVM

Looks like Map<String, String> is somehow important, because with parsing to JsonObject it correctly throws.

kunyavskiy avatar Dec 01 '23 22:12 kunyavskiy