웹 개발을 할 때 웹소켓이나 RestAPI로 받은 json데이터를 그대로 VO형태로 바꿔서 사용할 수 있는 방법이 있어 공유하고자 올립니다.
우선적으로 Gson을 사용하니 pom.xml에 디펜던시를 추가해줍니다.
1
2
3
4
|
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
|
cs |
예시로 받은 json형태의 데이터를 String으로 변환해 출력했을 때의 예시입니다.
1
2
3
4
5
6
7
8
9
|
{"testUpdate":{
"employee":{"id":"4","pairId":"198","employeeId":"138"},
"tempUpdate":{
"temps":[
{"tempId":"1640779763622300000","timestamp":"1640779763","timestampNano":"1640779763622300000","upDown":"DOWN"},
{"tempId":"1640779763622300001","timestamp":"1640779790","timestampNano":"1640779790786500000","upDown":"UP"}
]
}
}}
|
cs |
해당하는 json에 대응하는 java vo파일 예시입니다.
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
32
33
34
35
36
37
38
39
40
41
|
import com.google.gson.annotations.SerializedName;
import lombok.Getter;
import lombok.ToString;
import java.util.List;
@Getter
@ToString
public class TempVO {
@SerializedName("testUpdate") private tempTestUpdate testUpdate;
}
@Getter
@ToString
class tempTestUpdate {
private employee market;
private tempUpdate tempUpdate;
}
@Getter
@ToString
class employee {
private String id;
private String pairId;
private String employeeId;
}
@Getter
@ToString
class tempUpdate {
private List<temp> temps;
}
@Getter
@ToString
class temp {
private String tempId;
private String timestamp;
private String timestampNano;
private String upDown;
}
|
cs |
VO생성까지 끝났다면 최종적으로 받은 json데이터를 String으로 변환한 값을 아래와 같이 넣어주면 자동으로 값이 입력된 VO객체가 생성됩니다.
1
|
TempVO tempVO = gson.fromJson(data, TempVO.class);
|
cs |
꺼내서 사용하시는건 Getter Setter 사용하시면 됩니다.. 다들 금방 짜도 에러 없이 돌아가는 편안한 개발 되세요
반응형
'IT' 카테고리의 다른 글
[Java] java.lang.ClassNotFoundException (0) | 2023.05.24 |
---|---|
[Java] java.lang.NullPointerException (0) | 2023.05.24 |
[Visual Studio Code] VSCode 자주쓰는 단축키 모음 (0) | 2021.05.06 |
[Node.js] Node Timezone (0) | 2021.04.15 |
[Java] java.net.SocketException: Connection reset (0) | 2020.11.09 |