From 766952385d0afa363535eb3b813a3b4f1b22ceaf Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Thu, 27 Nov 2025 19:59:40 +0100 Subject: [PATCH 1/2] JsonProperty test for map key --- .../fasterxml/jackson/module/scala/AnnotatedColor.java | 7 +++++++ .../fasterxml/jackson/module/scala/enum/ColorEnum.scala | 4 ++++ .../jackson/module/scala/ser/MapSerializerTest.scala | 8 ++++++-- 3 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 src/test/java/com/fasterxml/jackson/module/scala/AnnotatedColor.java diff --git a/src/test/java/com/fasterxml/jackson/module/scala/AnnotatedColor.java b/src/test/java/com/fasterxml/jackson/module/scala/AnnotatedColor.java new file mode 100644 index 000000000..793a1d6b3 --- /dev/null +++ b/src/test/java/com/fasterxml/jackson/module/scala/AnnotatedColor.java @@ -0,0 +1,7 @@ +package com.fasterxml.jackson.module.scala; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public enum AnnotatedColor { + @JsonProperty("red") RED +} diff --git a/src/test/scala-3/com/fasterxml/jackson/module/scala/enum/ColorEnum.scala b/src/test/scala-3/com/fasterxml/jackson/module/scala/enum/ColorEnum.scala index 09b0fb001..edd301719 100644 --- a/src/test/scala-3/com/fasterxml/jackson/module/scala/enum/ColorEnum.scala +++ b/src/test/scala-3/com/fasterxml/jackson/module/scala/enum/ColorEnum.scala @@ -1,5 +1,9 @@ package com.fasterxml.jackson.module.scala.`enum` +import com.fasterxml.jackson.annotation.JsonProperty + enum ColorEnum { case Red, Green, Blue } +enum AnnotatedColorEnum { @JsonProperty("red") Red, @JsonProperty("green") Green, @JsonProperty("blue") Blue } + case class Colors(set: Set[ColorEnum]) diff --git a/src/test/scala/com/fasterxml/jackson/module/scala/ser/MapSerializerTest.scala b/src/test/scala/com/fasterxml/jackson/module/scala/ser/MapSerializerTest.scala index 00d1a7e7b..bef3837d3 100644 --- a/src/test/scala/com/fasterxml/jackson/module/scala/ser/MapSerializerTest.scala +++ b/src/test/scala/com/fasterxml/jackson/module/scala/ser/MapSerializerTest.scala @@ -5,7 +5,7 @@ import com.fasterxml.jackson.annotation.{JsonInclude, JsonProperty, JsonSubTypes import com.fasterxml.jackson.core.JsonGenerator import com.fasterxml.jackson.databind.annotation.JsonSerialize import com.fasterxml.jackson.databind.{JsonSerializer, SerializationFeature, SerializerProvider} -import com.fasterxml.jackson.module.scala.{DefaultScalaModule, JacksonModule} +import com.fasterxml.jackson.module.scala.{AnnotatedColor, DefaultScalaModule, JacksonModule} import scala.annotation.meta.getter import scala.beans.BeanProperty @@ -22,7 +22,6 @@ class TupleKeySerializer extends JsonSerializer[Product] { } } - object MapSerializerTest { class BeanieWeenie(@BeanProperty @JsonProperty("a") var a: Int, @@ -117,4 +116,9 @@ class MapSerializerTest extends SerializerTest { val v = m.writeValueAsString(wrapper) v shouldBe """{"map":{}}""" } + + it should "support JsonProperty annotation on Java enum key" in { + val map = Map(AnnotatedColor.RED -> "redValue") + newMapper.writeValueAsString(map) shouldEqual """{"red":"redValue"}""" + } } From f4b86f8cf308a4f760424336b1403f280ea2bbb2 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Thu, 27 Nov 2025 20:08:02 +0100 Subject: [PATCH 2/2] Update ColorEnum.scala --- .../com/fasterxml/jackson/module/scala/enum/ColorEnum.scala | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/test/scala-3/com/fasterxml/jackson/module/scala/enum/ColorEnum.scala b/src/test/scala-3/com/fasterxml/jackson/module/scala/enum/ColorEnum.scala index edd301719..0827efe17 100644 --- a/src/test/scala-3/com/fasterxml/jackson/module/scala/enum/ColorEnum.scala +++ b/src/test/scala-3/com/fasterxml/jackson/module/scala/enum/ColorEnum.scala @@ -4,6 +4,4 @@ import com.fasterxml.jackson.annotation.JsonProperty enum ColorEnum { case Red, Green, Blue } -enum AnnotatedColorEnum { @JsonProperty("red") Red, @JsonProperty("green") Green, @JsonProperty("blue") Blue } - case class Colors(set: Set[ColorEnum])