목록Jackson (5)
준호씨의 블로그
org.springframework.kafka.listener.ListenerExecutionFailedException: Listener failed; nested exception is org.springframework.kafka.support.converter.ConversionException: Failed to convert from JSON; nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `kr.pe.junho85.demo.model.TestType` from String "TEST": not one of the values accepted..
Kafka로 json데이터를 받고 있었는데 json name을 snake case로 보내주고 있었습니다. 예를 들어 아래처럼 말이죠. {"user_id":"jackson"} java코드에서 Naming Strategy를 SnakeCaseStrategy를 사용하고 있었습니다. @Data @JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) public class User { private String userId; } 그런데 이 걸 camel case로 바꾸겠다고 합니다. 아래처럼 말이죠. {"userId":"jackson"} 가급적 이런 일은 벌어지지 않는 게 좋습니다. 아직 개발 중이라면 동시에 바꿔주면 그만입니다. 그렇지만 서비스가 운영 중이라면 ..
가끔 json 정보를 직접 만들 때가 있습니다. 그런데 문자열 값을 만들려면 큰따옴표 안에 또 큰따옴표를 입력해야 하는데요. 아래처럼 그냥 만들다 보면 json 구조가 깨져서 나중에 json파싱 할 때 오류가 발생합니다. { "lastName": "홍", "extra": "{"type":"BIG"}" } json 문자열 값에 큰따옴표를 사용하려면 아래처럼 해야 됩니다. { "lastName": "홍", "extra": "{\"type\":\"BIG\"}" } 큰따옴표 앞에 역 슬래쉬(\)를 넣어 주었는데요. 이렇게 하면 나중에 실제로 값을 꺼낼 때는 역 슬래쉬를 지우고 큰따옴표만 사용하게 됩니다. 큰따옴표 외에도 역 슬래쉬, 개행, 탭 등 몇 가지 특수 문자들은 escape처리를 해 주어야 하는데요. 직..
아래와 같은 Person 클래스가 있습니다. (편의상 lombok을 사용합니다.) @Data @Builder public class Person { private String firstName; private String lastName; private String byName; private String phoneNumber; } person 인스턴스를 만들고 ObjectMapper로 json string을 출력합니다. @SpringBootTest public class MyTest { @Autowired private ObjectMapper mapper; @Test public void test() throws JsonProcessingException { Person person = Person.b..
@Data @Builder public class Person { private String firstName; private String lastName; private String byName; private String phoneNumber; } 클래스가 있고 (편의상 lombok을 사용합니다.) Person person = Person.builder() .firstName("Michael") .lastName("Jordan") .byName("Air Jordan") .build(); ObjectMapper mapper = new ObjectMapper(); System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(p..