@@ -8,8 +8,11 @@ import com.fasterxml.jackson.databind.DeserializationFeature
8
8
import com.fasterxml.jackson.databind.MapperFeature
9
9
import com.fasterxml.jackson.databind.SerializationFeature
10
10
import com.fasterxml.jackson.databind.SerializerProvider
11
+ import com.fasterxml.jackson.databind.cfg.CoercionAction
12
+ import com.fasterxml.jackson.databind.cfg.CoercionInputShape
11
13
import com.fasterxml.jackson.databind.json.JsonMapper
12
14
import com.fasterxml.jackson.databind.module.SimpleModule
15
+ import com.fasterxml.jackson.databind.type.LogicalType
13
16
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module
14
17
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule
15
18
import com.fasterxml.jackson.module.kotlin.kotlinModule
@@ -21,6 +24,60 @@ fun jsonMapper(): JsonMapper =
21
24
.addModule(Jdk8Module ())
22
25
.addModule(JavaTimeModule ())
23
26
.addModule(SimpleModule ().addSerializer(InputStreamJsonSerializer ))
27
+ .withCoercionConfig(LogicalType .Boolean ) {
28
+ it.setCoercion(CoercionInputShape .Integer , CoercionAction .Fail )
29
+ .setCoercion(CoercionInputShape .Float , CoercionAction .Fail )
30
+ .setCoercion(CoercionInputShape .String , CoercionAction .Fail )
31
+ .setCoercion(CoercionInputShape .Array , CoercionAction .Fail )
32
+ .setCoercion(CoercionInputShape .Object , CoercionAction .Fail )
33
+ }
34
+ .withCoercionConfig(LogicalType .Integer ) {
35
+ it.setCoercion(CoercionInputShape .Boolean , CoercionAction .Fail )
36
+ .setCoercion(CoercionInputShape .String , CoercionAction .Fail )
37
+ .setCoercion(CoercionInputShape .Array , CoercionAction .Fail )
38
+ .setCoercion(CoercionInputShape .Object , CoercionAction .Fail )
39
+ }
40
+ .withCoercionConfig(LogicalType .Float ) {
41
+ it.setCoercion(CoercionInputShape .Boolean , CoercionAction .Fail )
42
+ .setCoercion(CoercionInputShape .String , CoercionAction .Fail )
43
+ .setCoercion(CoercionInputShape .Array , CoercionAction .Fail )
44
+ .setCoercion(CoercionInputShape .Object , CoercionAction .Fail )
45
+ }
46
+ .withCoercionConfig(LogicalType .Textual ) {
47
+ it.setCoercion(CoercionInputShape .Boolean , CoercionAction .Fail )
48
+ .setCoercion(CoercionInputShape .Integer , CoercionAction .Fail )
49
+ .setCoercion(CoercionInputShape .Float , CoercionAction .Fail )
50
+ .setCoercion(CoercionInputShape .Array , CoercionAction .Fail )
51
+ .setCoercion(CoercionInputShape .Object , CoercionAction .Fail )
52
+ }
53
+ .withCoercionConfig(LogicalType .Array ) {
54
+ it.setCoercion(CoercionInputShape .Boolean , CoercionAction .Fail )
55
+ .setCoercion(CoercionInputShape .Integer , CoercionAction .Fail )
56
+ .setCoercion(CoercionInputShape .Float , CoercionAction .Fail )
57
+ .setCoercion(CoercionInputShape .String , CoercionAction .Fail )
58
+ .setCoercion(CoercionInputShape .Object , CoercionAction .Fail )
59
+ }
60
+ .withCoercionConfig(LogicalType .Collection ) {
61
+ it.setCoercion(CoercionInputShape .Boolean , CoercionAction .Fail )
62
+ .setCoercion(CoercionInputShape .Integer , CoercionAction .Fail )
63
+ .setCoercion(CoercionInputShape .Float , CoercionAction .Fail )
64
+ .setCoercion(CoercionInputShape .String , CoercionAction .Fail )
65
+ .setCoercion(CoercionInputShape .Object , CoercionAction .Fail )
66
+ }
67
+ .withCoercionConfig(LogicalType .Map ) {
68
+ it.setCoercion(CoercionInputShape .Boolean , CoercionAction .Fail )
69
+ .setCoercion(CoercionInputShape .Integer , CoercionAction .Fail )
70
+ .setCoercion(CoercionInputShape .Float , CoercionAction .Fail )
71
+ .setCoercion(CoercionInputShape .String , CoercionAction .Fail )
72
+ .setCoercion(CoercionInputShape .Object , CoercionAction .Fail )
73
+ }
74
+ .withCoercionConfig(LogicalType .POJO ) {
75
+ it.setCoercion(CoercionInputShape .Boolean , CoercionAction .Fail )
76
+ .setCoercion(CoercionInputShape .Integer , CoercionAction .Fail )
77
+ .setCoercion(CoercionInputShape .Float , CoercionAction .Fail )
78
+ .setCoercion(CoercionInputShape .String , CoercionAction .Fail )
79
+ .setCoercion(CoercionInputShape .Array , CoercionAction .Fail )
80
+ }
24
81
.serializationInclusion(JsonInclude .Include .NON_ABSENT )
25
82
.disable(DeserializationFeature .ADJUST_DATES_TO_CONTEXT_TIME_ZONE )
26
83
.disable(SerializationFeature .FLUSH_AFTER_WRITE_VALUE )
0 commit comments