--- aliases: tags: - maturity/π± date: 2024-09-14 zero-link: - "[[../../meta/zero/00 Π‘Π½ΠΈΠΏΠ΅ΡΡ Π΄Π»Ρ Java|00 Π‘Π½ΠΈΠΏΠ΅ΡΡ Π΄Π»Ρ Java]]" parents: - "[[../../../../knowledge/dev/java/other/Jackson|Jackson]]" linked: --- ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ Json ΡΡΡΠΎΠΊΡ Π² java ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ ΡΠ΅ΡΠ΅Π· `ObjectMapper` Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ `ObjectMapper` Π½Π΅ Π·Π½Π°Π΅Ρ ΠΊΠ°ΠΊΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ ΠΊΠ°ΠΊΠΎΠΉ Π²Π½ΡΡΡΠΈ Π½Π΅Π΅ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ . ΠΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ ΡΡΡΡΠΊΡΡΡΡ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ `ParameterizedType`. ΠΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ `List` ΠΈ `Map`: ```java {9,14} import java.lang.reflect.ParameterizedType; @UtilityClass public class CollectionTypes { public static final Type LIST_STRINGS = new ParameterizedType() { @Override public Type[] getActualTypeArguments() { return new Type[]{String.class}; } @Override public Type getRawType() { return List.class; } @Override public Type getOwnerType() { return null; } }; // Map<Long, Double> public static final Type MAP_LONG_DOUBLE = new ParameterizedType() { @Override public Type[] getActualTypeArguments() { return new Type[]{Long.class, Double.class}; } @Override public Type getRawType() { return Map.class; } @Override public Type getOwnerType() { return null; } }; } ``` ΠΠ΅ΡΠΎΠ΄ `getActualTypeArguments()` Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ, Π° `getRawType()` ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡ. ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ: ```java import com.fasterxml.jackson.databind.JavaType; ... String jsonValue = ... JavaType javaType = JsonUtils.OBJECT_MAPPER.constructType(CollectionTypes.LIST_STRINGS); List<String> resultList = finalJsonUtils.OBJECT_MAPPER.readValue(jsonValue, javaType); ``` *** ## ΠΠ΅ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ **ΠΠ±Π»Π°ΡΡΡ**:: [[../../meta/zero/00 Π‘Π½ΠΈΠΏΠ΅ΡΡ Π΄Π»Ρ Java|00 Π‘Π½ΠΈΠΏΠ΅ΡΡ Π΄Π»Ρ Java]] **Π ΠΎΠ΄ΠΈΡΠ΅Π»Ρ**:: [[../../../../knowledge/dev/java/other/Jackson|Jackson]] **ΠΡΡΠΎΡΠ½ΠΈΠΊ**:: **Π‘ΠΎΠ·Π΄Π°Π½Π°**:: [[2024-09-14]] **ΠΠ²ΡΠΎΡ**:: ### ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ -