File tree Expand file tree Collapse file tree 4 files changed +52
-1
lines changed
main/kotlin/com/fasterxml/jackson/module/kotlin
test/kotlin/com/fasterxml/jackson/module/kotlin/test/github Expand file tree Collapse file tree 4 files changed +52
-1
lines changed Original file line number Diff line number Diff line change @@ -31,6 +31,7 @@ WrongWrong (@k163377)
31
31
# 2 .18.3 (not yet released)
32
32
33
33
WrongWrong (@k163377 )
34
+ * #904 : Fixed an error when serializing a `value class` that wraps a `Map`
34
35
* #900 : Fixed an issue where some tests were not running
35
36
36
37
# 2 .18.0 (26-Sep-2024)
Original file line number Diff line number Diff line change @@ -34,6 +34,10 @@ Co-maintainers:
34
34
#839 : Remove useKotlinPropertyNameForGetter and unify with kotlinPropertyNameAsImplicitName.
35
35
#835 : Remove old SingletonSupport class and unified with KotlinFeature.SingletonSupport.
36
36
37
+ 2.18 .3 (not yet released )
38
+
39
+ #904 : An error that occurred when serializing a `value class` that wraps a `Map`(#873) has been fixed.
40
+
37
41
2.18 .2 (27 - Nov - 2024 )
38
42
2.18 .1 (28 - Oct - 2024 )
39
43
Original file line number Diff line number Diff line change @@ -62,7 +62,7 @@ object ValueClassUnboxSerializer : StdSerializer<Any>(Any::class.java) {
62
62
return
63
63
}
64
64
65
- provider.findValueSerializer (unboxed:: class .java).serialize(unboxed , gen, provider )
65
+ provider.defaultSerializeValue (unboxed, gen)
66
66
}
67
67
}
68
68
Original file line number Diff line number Diff line change
1
+ package com.fasterxml.jackson.module.kotlin.test.github
2
+
3
+ import com.fasterxml.jackson.module.kotlin.defaultMapper
4
+ import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
5
+ import com.fasterxml.jackson.module.kotlin.readValue
6
+ import kotlin.test.Test
7
+
8
+ class GitHub873 {
9
+ @Test
10
+ fun `should serialize value class` () {
11
+
12
+ val person = Person (
13
+ mapOf (
14
+ " id" to " 123" ,
15
+ " updated" to " 2023-11-22 12:11:23" ,
16
+ " login" to " 2024-01-15" ,
17
+ ),
18
+ )
19
+
20
+ val serialized = defaultMapper.writeValueAsString(
21
+ TimestampedPerson (
22
+ 123L ,
23
+ Person (person.properties),
24
+ )
25
+ )
26
+
27
+ val deserialized = defaultMapper.readValue<TimestampedPerson >(serialized)
28
+
29
+ assert (
30
+ deserialized == TimestampedPerson (
31
+ 123L ,
32
+ Person (person.properties),
33
+ )
34
+ )
35
+ }
36
+
37
+ @JvmInline
38
+ value class Person (
39
+ val properties : Map <String , Any >,
40
+ )
41
+
42
+ data class TimestampedPerson (
43
+ val timestamp : Long ,
44
+ val person : Person ,
45
+ )
46
+ }
You can’t perform that action at this time.
0 commit comments