---
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]]
**Автор**:: 
### Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹
-