spring-boot-starter-web 을 이용해 웹서버 애플리케이션을 만들고 있다면 json 에 대한 핸들링은 jackson 을 이용하게 된다. 물론 jackson 외 다른 라이브러리를 이용하고 싶다면 변경할 수 있다. jackson 에서 실질적으로 json serialize/deserialize 를 담당하는 객체는 ObjectMapper 인데 스프링 부트로 애플리케이션을 만들어봤다면 별다른 설정을 하지 않아도 잘 돌아가는걸 확인할 수 있을 것이다. # custom serializer/deserializer 가 필요한 경우 널리 사용되는 타입들에 대해서는 대부분 정상적으로 serialize/deserialize 가 되기 때문에 고민할 거리가 없다. 하지만 개발자가 임의로 정의한 타입에 대해 원하는 ..
kotlin 에서 jackson 사용시 kotlin/reflect/KotlinReflectionInternalErrorjava.lang.NoClassDefFoundError: kotlin/reflect/KotlinReflectionInternalError 이런 에러를 내뿜는 경우가 있다. 나같은경우 코틀린은 1.2.10 을 사용하고있고, 스프링부트를 이용해서 작업하고있었는데 스프링부트에서 포함하고있는 jackson 이 2.8.10 이라서 코틀린 jackson 모듈도 동일 버전으로 추가했었다. compile("com.fasterxml.jackson.module:jackson-module-kotlin:2.8.10") 그리고 저 에러를 만난건데 코틀린 jackson 버전을 2.9 이상으로 올려주면 해결된다.j..
바로 앞선 포스팅에서 Jackson 2.9 버전에 대해 알아봤다. 이 이슈를 해결하다가 알게된 버그인데 포스팅하고자한다. 1. 이슈 일단 앞선 이슈를 해결하기위해 Jackson 버전을 올렸는데 CI 서버가 테스트를 실행하면서 다른 곳의 테스트가 실패하는 이슈가 발생했다. json 문자열을 자바 객체로 역직렬화(deserialization)하는 테스트였는데 이런 코드였다. public class DeserializeTest { private ObjectMapper objectMapper; @Before public void setUp() { this.objectMapper = new ObjectMapper(); } @Test public void test() throws IOException { Strin..
json 문자열을 자바 객체로 역직렬화(deserialization)하거나 반대로 자바 객체를 json 문자열로 직렬화(serialization)을 할때 자바 라이브러리로는 대표적으로 jackson을 많이 사용한다. 직렬-역직렬시 json key를 결정하는건 @JsonProperty 라는 애노테이션을 이용한다. public class TestClass{ @JsonProperty("name") private String name; } TestClass 객체를 직렬화하거나 혹은 json 문자열을 TestClass 객체로 역직렬화시 name key는 @JsonProperty 애노테이션에 name으로 지정된 곳에 매핑이 되게된다. 참고로 해당 애노테이션이 없을때는 기본적으로 필드명끼리 매핑시키므로 예제와같이 필..
- Total
- Today
- Yesterday
- 정규표현식
- MySQL
- servlet
- http
- mariadb
- java
- Kotlin
- programming
- generics
- backend개발환경
- TEST
- DesignPattern
- spring cloud
- code
- frontcode
- JPA
- Design Pattern
- Git
- Spring
- clean code
- toby
- EffectiveJava
- db
- java8
- go-core
- Jackson
- JavaScript Core
- frontend개발환경
- OOP
- javascript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |