SEB_BE 22일차 - 재귀 Stringifyjson

subimm_·2022년 9월 21일
0

코드스테이츠

목록 보기
22/83

Daily coding

이자 = 1 + 연이율/100

while (principal < 2) { //원금이 2배가 되지 않으면 반복
principal = principal * interest; // 원금 = 원금 * 이자;
year++ // 년이 지날 때마다
}

📔 JSON

  • 데이터 교환을 위해 만들어진 객체 형태의 포맷
Map<String, String> message = new HashMap<>{{
	put("발신자","홍길동");
    put("수신자","노진구");
    put("메세지","공부하자");
    put("보낸날짜", "2022-09-21");
   }};
  • 전송가능한 조건
  1. 수신자와 발신자가 같은 프로그램 사용
  2. 문자열 처럼 범용적으로 읽을 수 있어야함.
    • 객체를 JSON의 형태로 변환 / JSON을 객체의 형태로 변환
      jackson 라이브러리에서 제공하는 ObjectMapper 클래스를 사용하여 변환


      직렬화
    ObjectMapper mapper = new ObjectMapper();
    String json = mapper.writeValueAsString(message);
    
    System.out.println(json);
    //{"보낸날짜":"202-09-21","수신자":"노진구","발신자":"홍길동","메세지":"공부하자"}

    역직렬화 - readValue

    ObjectMapper mapper = new ObjectMapper();
    String json = "{\"보낸날짜\":\"2021-09-21\",\"수신자\":\"노진구\",\"발신자\":\"홍길동\",\"메세지\":\"공부하자\"}";
    
    Map<String, String> deserializedData = mapper.readValue(json, Map.class);
    System.out.println(deserializedData);
    /*
    {createdAt=2021-01-12,10:10:10, receiver=박해커, sender=김코딩, message=밥먹을래?}
    */
  • JSON 의 키와 문자열 값은 반드시 쌍따옴표로 감싸야한다.

📜 Stringify 직접 구현하기 과제

https://github.com/subimm/be-sprint-stringify-json.git

// 활용한 메서드
if(data instanceof Integer) // 데이터가 Integer 타입인지 확인
return String.valueof(data); // 데이터를 스트링으로 반환
answer += String.join(",",val); //val 요소 사이 ',' 추가하여 answer에 추가

///레퍼런스 코드에서 활용한 메서드
String.format("\"%s\"", data); //문자열 마다 "" 붙이기
replaceAll(" ",""); //띄어쓰기 삭제
LinkedHashMap<>(); // 순서대로 정렬된 해시맵

회고

오늘은 JSON 학습과 실제 함수를 직접 구현하는 과제를 페어분이랑 해봤다. 처음에는 과제 자체가 이해가 안갔는데 학습콘텐츠를 천천히 몇번 반복해서 읽어보니까 조금 이해가 갔다. 어렵다고 피하지 말고 천천히 문제를 잘 보는게 중요했던거 같다. 거의 페어분 버스를 탔지만 그래도 무사히 과제를 마쳐서 다행,,
레퍼런스 코드를 보니 너무 간결하게 끝낼 수 있던걸 붙잡고 늘린것 같았다,,어렵다ㅠㅠㅠ

profile
코린이의 공부 일지

0개의 댓글