[JAVA] Json 페어 문제

JSON?

JavaScript Object Notation -> 데이터 교환을 위해 만들어진 객체 형태의 포맷

JSON과 JS의 차이

JSON.stringify() 메서드는 JavaScript 값이나 객체를 JSON 문자열로 변환합니다. 선택적으로, replacer를 함수로 전달할 경우 변환 전 값을 변형할 수 있고, 배열로 전달할 경우 지정한 속성만 결과에 포함합니다.

문자 반환 재귀함수 문제 페어 풀이

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.w3c.dom.ls.LSOutput;

import java.util.*;

public class stringifyJSON {

  public String ObjectMapper(Object data) throws JsonProcessingException {
    ObjectMapper mapper = new ObjectMapper();
    return mapper.writeValueAsString(data);
  }

  public String stringify(Object data) {

    // 입력된 값이 문자열일 경우"foo"
    if(data instanceof String) return String.format("\"%s\"", data);

      // 입력된 값이 Integer일 경우
    else if(data instanceof Integer) return String.format("%d", data);

      // 입력된 값이 Boolean일 경우
    else if(data instanceof Boolean) return String.format("%b", data);

      // 입력된 값이 Object[]일 경우
    else if(data instanceof Object[]) {
      Object[] obj = (Object[]) data;

      if(obj.length == 0) return "[]";
      else if(obj.length == 1) return "[" + stringify(obj[0]) + "]";

      return null;
    }

    // 입력된 값이 HashMap일 경우
    else if(data instanceof HashMap) {
      HashMap<String, String> map = new HashMap<>();
      return String.format("%s", data);
    }

    // 지정되지 않은 타입의 경우에는 "null"을 리턴합니다.
    else return "null";
  }
}


/*
  1. stringify 함수
      -> data받아서 확인 -> 타입확인 if문을 사용(instanceof 메서드)
  2. 반환 3가지
      -> return true, foo, null
  3. hashmap:  Map 자료형의 Key는 항상 String으로 저장됩니다. null은 입력할 수 없습니다.
  4. 전달인자의 타입은 instanceof 메서드
  5. 미지정 -> null

iDE 파일 불러오기 열기 -> 폴더만 깔끔하게 -> 모듈 sdk

참조 오류 빌드/실행/배포 -> 그래들 -> 빌드/실행/테스트 IDE로 변경