티스토리 뷰
특정 데이터를 ArrayList안에 HashMap 저장하려고 한다.
data: {
categories: [
0:{
"ko_name": "책",
"code": "book"
},
1:{
"ko_name": "슬픔",
"code": "sadness"
}
]
}
데이터를 이런식으로 뽑아줘야 하는 경우가 있다고 쳐보자.
ArrayList안에 hash맵이 들어가는 데이터 형식을 선언하고 이를 ko_name따로, code 따로 분리해서 저장하려 했다. (이후 이를 categories라는 Dto에 매핑해준다.)
public static final ArrayList<HashMap<String,String>> categoryCodeResponse= new ArrayList<>();
@PostConstruct
public static void categoryMap(){
for (Category category :categoryValueList) {
HashMap<String,String> koName= new HashMap<>();
koName.put("ko_name",category.getKoreanMessage());
HashMap<String,String> code= new HashMap<>();
koName.put("code",category.getCode());
categoryCodeResponse.add(koName);
categoryCodeResponse.add(code);
categoryCodeList.add(category.getCode());
}
}
이 경우 데이터가 원하는 형식이 아니라 이렇게 출력된다.
{
"statusCode": 200,
"message": "success",
"data": {
"categories": [
{
"code": "art",
"ko_name": "예술"
},
{},
{
"code": "biography",
"ko_name": "전기"
},
{},
{
"code": "business",
"ko_name": "비즈니스"
},
{},
{
"code": "children",
"ko_name": "어린이"
},
{},
{
"code": "comics",
"ko_name": "만화"
..
중간에 빈 hashMap들이 보인다.
이렇게 되는 이유는
내가 hashMap을 잘못 이해하고있나했더니 그냥 koName에 두번 할당해주고 code에는 할당을 안해줘서 code는 빈 인스턴스인 채로 추가 돼서 그렇다...
hashMap의 문제가 아니라 그냥 코드 복붙하다 에러낸거였다.. (글을 작성하던 중간에 눈치챔)
사실 저기서 그냥 koName.put("code",category.getCode()); -> code.put("code",category.getCode());로 바꾸면 정상적으로 동작하겠지만 더 좋은 방식은 아래 방식이다.
public static final ArrayList<HashMap<String,String>> categoryCodeResponse= new ArrayList<>();
@PostConstruct
public static void categoryMap(){
for (Category category :categoryValueList) {
HashMap<String,String> categoryMap = new HashMap<>();
categoryMap.put("ko_name", category.getKoreanMessage());
categoryMap.put("code", category.getCode());
categoryCodeResponse.add(categoryMap);
categoryCodeList.add(category.getCode());
}
}
글을 쓰고나니 허무하다
내가 로직상의 오류를 발견해서 리팩토링한건줄 알았는데
복붙하다 오타낸거라니
여러분은 변수명을 잘 확인하도록 하자
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 시간어떻게
- 이미지검색
- 스마트렌즈
- 조회수기능개발
- jupyterlab
- 조회수기능
- 모의서버
- 네이버이미지검색
- 알고있
- 지도데이터
- 빈해쉬맵
- mockserver
- ChatGPT
- 해커톤
- crudrepository
- PC시간어떻게
- 항해커톤
- redis-py
- 소숫점잘림
- redis
- 데이터잘림
- 구글
- 실시간클록
- 목서버
- 구글클라우드스토리지
- 주피터랩
- redisTemplate
- 실시간클락
- visionAPI
- 항해해커톤
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함