티스토리 뷰


1.JsonNode로 만들기

1
2
3
4
String rawJson = new String(byteBuffer.array(), "UTF-8");
ObjectMapper objectMapper = new ObjectMapper();
 
JsonNode node = objectMapper.readTree(rawJson);
cs

ObjectMapper의 .readTree()를 사용한다.


2.java jackson을 이용해 json을 pojo로 바꾸기 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.plutusds.voting.server.domains.UserInfoResponse;
 
import java.io.IOException;
 
public class UserInfoResponseMaker {
    public UserInfoResponse make(String userResponseString) throws IOException {
 
        String jsonString = new String(userResponseString);
 
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        UserInfoResponse UserInfoResponse = objectMapper.readValue(jsonString, UserInfoResponse.class);
 
        return UserInfoResponse;
 
    }
}
cs


자바에서 json을 pojo로 매핑 할 때 씀


ObjectMapper를 이용한다.


1
2
3
4
5
6
7
8
9
10
11
12
@Data
public class UserInfoResponse {
    private String owner;
 
    @JsonProperty("total_votes")
    private double totalVotes;
 
    @JsonProperty("producer_key")
    private String producerKey;
 
    private String url;
}
cs


UserInfoResponse.class로 매핑을 해주고 싶을 때 json형태에 맞게 Pojo를 구성을 해준다.


그런데 필드명으로 매핑을 하는데 내가 지정을 해주고 싶다면 @JsonProperty를 사용해서 대상 이름 "total_votes"를 totalVotes로 바꿔줄 수 있다.


자바는 기본적으로 카멜케이스를 쓰기 때문에 바꿔주고 싶을 때가 있을때 주로 쓴다.



String을 json으로 mapping

String jsonString = new ObjectMapper().writeValueAsString(response.data);
System.out.println(jsonString);


728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함