Json으로 정보 처리 하려고 만듬.
Gson만 써도 되는데.. 만든지 3달정도 되서 아래 Jackson은 확인은 해봐야 함.
사용하시려면 Jackson은 제거하고 사용하거나 확인은 해보는걸 추천. convertToClass(String value) 이 함수.
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20201115</version>
</dependency>
import com.google.gson.*;
import org.codehaus.jackson.map.ObjectMapper;
import java.io.IOException;
import java.lang.reflect.Type;
import java.util.List;
import java.util.Map;
public class JsonConverter {
private static final Gson gson = new GsonBuilder()
.disableHtmlEscaping()
.setPrettyPrinting()
.serializeNulls()
.excludeFieldsWithoutExposeAnnotation()
.serializeSpecialFloatingPointValues()
.create();
public static <T extends Map<?, ?>> String convert(T obj) {
return gson.toJson(obj);
}
public static <T extends Class<?>, V> String convert(T cls, V obj) {
return gson.toJson(obj);
}
public static <T, V extends String> List<T> convertToClassList(Class<T> cls, V value) {
return gson.fromJson(value, com.google.gson.reflect.TypeToken.getParameterized(List.class, cls).getType());
}
public static <T, V extends String> T convertToClass(Class<T> cls, V value) throws JsonSyntaxException {
return gson.fromJson(value, (Type)cls);
}
public static Map<String, String> convertToClass(String value) throws IOException {
ObjectMapper mapper = new ObjectMapper();
return mapper.readValue(value, Map.class);
}
}
사용법
String jsonParameter = JsonConverter.convert(Dto.class, sendJsonDto);
ResultDto list = JsonConverter.convertToClass(ResultDto.class, jsonResult);
List<Dto> DtoList = JsonConverter.convertToClassList(Dto.class, splitText);
'Java' 카테고리의 다른 글
자바 임의 값 0~100 랭크 구하기 (0) | 2021.09.16 |
---|---|
자바 랜덤키 (0) | 2021.05.13 |
자바 Log Class (0) | 2021.02.22 |
자바 Aspect, Annotation으로 Log 만들기 (0) | 2021.02.22 |
자바 외부 dll 연동하기 opencv (0) | 2021.01.20 |