Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 10989
- Kafka
- signal
- 정보처리기사
- ifdef
- 필기
- endif
- scanf()
- 2025
- 카운팅 정렬
- DEBUG
- container
- fork
- half-close
- sizeof()
- 구조체
- fread()
- struct
- strlen()
- 에라토스테네스의 체
- EOF
- fwrite()
- pack
- Docker
- handling
- Wait
- fgets()
- 1929
- 자식
- 백준
Archives
- Today
- Total
팥빵 먹으면서 코딩하는 블로그
Object Mapper 본문
package com.example.objectmapper;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class ObjectMapperApplicationTests {
@Test
void contextLoads() throws JsonProcessingException {
System.out.println("-------------");
/*
object mapper란?
text형태의 json을 object로 바꿔준다.
object를 text 형태의 json으로 바꿔준다.
=> controller외에 따로 작업을 해야 한다던지 객체를 json으로 바꿔야 된다던지 할땐
object mapper를 생성한 다음 write value에 string이라든기 read value를 통해 json을 object로 반대로 바꿔줄 수 있음.
이제까지 우리는 controller에서 request로 json(text)형태로 들어오면 자동적으로 object로 바꿔줬고,
response를 object로 return하게 되면 자동적으로 json(text)형태로 바꿔주고 있었음.
여기선 직접 객체로 생성해서 우리가 활용해볼거임.
*/
var objectMapper = new ObjectMapper(); //object 생성
//01. oject ->text
//object에서 text로 바뀔 때는 object mapper가 get method를 활용한다.
var user = new User("steve", 24, "01023456789");
var text = objectMapper.writeValueAsString(user); //*************
System.out.println(text);
//02. text -> object
//object mapper는 동작하기 위해서 바꿀 class 객체에 default 상태인 생성자가 있어야 한다.
var objectUser = objectMapper.readValue(text, User.class); //첫번째에는 json text, 두번째에는 어떠한 클래스로 바꿀건지 class를 넣어주면 됨.
System.out.println(objectUser);
}
/*
출력값:
{"name":"steve","age":24,"phone_number":"01023456789"} <- object가 text로 바뀐 형태, snake 형태로 출력
User{name='steve', age=24, phoneNumber='01023456789'} <- text가 object로 바뀐 형태, camel 형태로 출력
*/
}
- User 객체
package com.example.objectmapper;
import com.fasterxml.jackson.annotation.JsonProperty;
public class User {
private String name;
private int age;
@JsonProperty("phone_number")
private String phoneNumber;
public User(){
this.name = null;
this.age = 0;
this.phoneNumber = null;
}
public User(String name, int age, String phoneNumber){
this.name = name;
this.age = age;
this.phoneNumber = phoneNumber;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getPhoneNumber() {
return phoneNumber;
}
//get set말고 다른 method를 만드는 경우,
//method 이름에 "get"이 포함되어 있으면 object mapper가 해당 클래스에 대해서 sereialize, deserialize할 때 에러가 발생한다.
//따라서 반드시 내가 작성한 class가 object mapper에 활용된다고 할 땐, get을 붙여주면 안된다.
/*
public User getDefaultUser(){
return new User("defalut", 10);
}
다음은 고쳐본 거.
*/
public User DefaultUser(){
return new User("defalut", 10, "01022233333");
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
", phoneNumber='" + phoneNumber + '\'' +
'}';
}
}
'study > JAVA SPRING' 카테고리의 다른 글
DI에 대하여 (0) | 2024.08.29 |
---|---|
spring에 대하여 (0) | 2024.08.29 |
controller 00. (0) | 2024.08.29 |
controller 05 - RESPONSE (0) | 2024.08.29 |
controller 04 - delete (0) | 2024.08.28 |