Skip to content

Cannot parse map if the map contains 0 #15

@MrPowerGamerBR

Description

@MrPowerGamerBR
val parsedMap = Constants.HOCON_MAPPER.readValue<Map<Int, String>>("""{ 1 = "abc" }""")
println(parsedMap)

Output: {1=abc}

val parsedMap = Constants.HOCON_MAPPER.readValue<Map<Int, String>>("""{ 0 = "abc" }""")
println(parsedMap)

Output:

Exception in thread "main" com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.LinkedHashMap` out of START_ARRAY token
 at [Source: UNKNOWN; line: -1, column: -1]
	at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:63)
	at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1343)
	at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1139)
	at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1093)
	at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromEmpty(StdDeserializer.java:600)
	at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:360)
	at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:29)
	at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4013)
	at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3023)
	at net.perfectdreams.loritta.QuirkyStuffKt.main(QuirkyStuff.kt:63)
	at net.perfectdreams.loritta.QuirkyStuffKt.main(QuirkyStuff.kt)

This happens even if the Map is another type (Example: Map<String, String>)

This does NOT happen when parsing with lightbend/config:

val conf = ConfigFactory.parseString("""{ 0 = "abc" }""")
println(conf)

Output: Config(SimpleConfigObject({"0":"abc"}))

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions