|
13 | 13 | import com.fasterxml.jackson.databind.DeserializationFeature;
|
14 | 14 | import com.fasterxml.jackson.databind.JsonNode;
|
15 | 15 | import com.fasterxml.jackson.databind.MapperFeature;
|
16 |
| -import com.fasterxml.jackson.databind.ObjectMapper; |
17 | 16 | import com.fasterxml.jackson.databind.SerializationFeature;
|
18 | 17 | import com.fasterxml.jackson.databind.json.JsonMapper;
|
19 | 18 | import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
|
20 | 19 | import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
21 | 20 |
|
22 | 21 | import no.nav.vedtak.exception.TekniskException;
|
23 | 22 |
|
| 23 | +/** |
| 24 | + * OBS: JsonMapper er en subklasse av ObjectMapper - tilpasset Json og med en enklere builder |
| 25 | + * Se også jackson-core, pakke json, JsonReadFeature og JsonWriteFeature for mer Java/Json-nær konfig/features |
| 26 | + */ |
24 | 27 | public class DefaultJsonMapper {
|
25 | 28 |
|
26 | 29 | private DefaultJsonMapper() {
|
27 | 30 |
|
28 | 31 | }
|
29 | 32 |
|
30 |
| - private static final JsonMapper MAPPER = createObjectMapper(); |
| 33 | + private static final JsonMapper MAPPER = createJsonMapper(); |
31 | 34 |
|
32 |
| - public static ObjectMapper getObjectMapper() { |
| 35 | + @Deprecated // Bruk getJsonMapper() når mapper-konfig brukes as is og ikke endres ((de)serializers eller subtypes |
| 36 | + public static JsonMapper getObjectMapper() { |
33 | 37 | return MAPPER;
|
34 | 38 | }
|
35 | 39 |
|
36 |
| - private static JsonMapper createObjectMapper() { |
| 40 | + // Foretrekker denne - men bruk heller metoder nedenfor direkte enn å assigne til lokale variable |
| 41 | + public static JsonMapper getJsonMapper() { |
| 42 | + return MAPPER; |
| 43 | + } |
| 44 | + |
| 45 | + // Bruk denne for kun for ContextResolver (JacksonJsonConfig-klasser) som skal legge til (de)serializers eller registrere subtypes |
| 46 | + public static JsonMapper getCopyFromDefaultJsonMapper() { |
| 47 | + return MAPPER.copy(); |
| 48 | + } |
| 49 | + |
| 50 | + private static JsonMapper createJsonMapper() { |
37 | 51 | return JsonMapper.builder()
|
38 | 52 | .addModule(new Jdk8Module())
|
39 | 53 | .addModule(new JavaTimeModule())
|
40 | 54 | .defaultTimeZone(TimeZone.getTimeZone("Europe/Oslo"))
|
41 |
| - .enable(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES) // Trengs denne? Sak har kjørt uten |
| 55 | + .enable(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES) // TODO: Trengs denne? Sak har kjørt lenge uten |
42 | 56 | .disable(SerializationFeature.FAIL_ON_EMPTY_BEANS)
|
43 | 57 | .disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
|
44 | 58 | .disable(SerializationFeature.WRITE_DURATIONS_AS_TIMESTAMPS)
|
|
0 commit comments