본문 바로가기

JAVA22

[자바] JSON, JSONArray, JSONObject, 또 파싱하는법.. 프로젝트에서 사용하는 JSON의 개념에 대하여 개요 프로젝트를 진행하다보면 JSON형태로 데이터를 전달하는 경우가 많다. 데이터를 넣고 빼기가 쉽고 텍스트로 이루어져 있어 사람이 직관적으로 볼 수 있기 때문이다. 그런데 이걸 사용하면서도 여기서 이걸 쓰나? 이렇게 파싱하는게 맞나? 어 에러 안나네. 근데 왜 이렇게 파싱하는거지? 이렇게하면 왜 파싱 오류가 뜨는거지? 하면서 의문을 가질 때가 종종 있다. 그래서 그런 혼동을 줄여보고자 개념을 정리하는 시간을 가졌다. JSON? '키-값 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷' 이다. JSON을 한번이라도 써보면 get을 이용해 값을 가져오고 put을 이용해 값을 넣는 것을 봤을 것이다. 이 때, key를 사용해서 value를 가져오고 값.. 2023. 3. 13.
[자바] JAVA날짜, 시간 세팅 하고 싶을 때 : 연도 날짜 시간 클래스 GregorianCalendar(Feat.SimpleDateFormat) 개요 자바를 사용할 때 날짜를 넣어줄 때가 많다. 그래서 자바에는 Calendar라는 클래스가 존재한다. 그 중에서도 우리 나라 표준시인 GregorianCalendar에 대해 알아보고자 한다. GregorianCalendar은 Calendar클래스를 상속받은 것으로 우리 나라 외 다른 나라 시간도 지원한다. GregorianCalendar를 써보면서 가장 편리한 점이라면 날짜, 시간을 세팅하기가 굉장히 편리하다는 점이었다. 선언 //선언 GregorianCalendar cal = new GregorianCalendar(); 생성자를 이용해 생성한다. 사용 System.out.println(cal.getTime()); //결과 Wed Dec 10 18:12:05 KST 2022 값을 출력하면 이런 식으로.. 2023. 3. 8.
[자바]java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer (부제: 형변환은 항상 신경 좀 씁시다.) + 이외에 다른 자바 형변환 정리 여느때와 같은 평화로운 근무시간. 파라미터 하나가 추가되어 수정해달라는 요청을 받고 평소와 같이 수정을 마쳤다. 코드 한 줄 바꾼 것이고 파라미터 명만 신경쓰면 당연히 오류가 나지 않을 것이라 자신하며 배포를 했으나 이게 웬 걸 에러가 터져버렸다. 이제는 익숙해진 에러 문구. String인데 왜 int로 변경하려고 하느냐 어리석은 녀석아 하는 메시지이다. JS처럼 저절로 형변환이 되면 좋으련만 JAVA는 이래저래 손이 많이 가는 친구다. 형변환이란? 서로 다른 타입간의 연산을 수행할 때 타입을 일치시키기 위해 변수나 리터럴의 타입을 다른 타입으로 변환하는 것. String, int 형변환하는 법 - String to int String ex_str = "123"; int ex_int = Integer.p.. 2023. 2. 16.
java.net.MalformedURLException: no protocol 'url' 로 시작하여 illegal character: '\ufeff' 로 끝나는 오류 해결 기록 개요 회사에서 프로젝트를 진행하는 중이었다. 외부api를 연결해야 했는데 뜬금없이 java.net.MalformedURLException: no protocol 'url' 로 시작하는 오류 메시지가 뜨면서 api연결이 되지 않았다. 다른 api연동시엔 전혀 문제없이 되던 것이었고 이러한 오류가 뜬 적이 없어 매우 당황스러웠다. 문제파악 바로 구글링을 해본 결과 URL 처음에 http://를 붙여야 한다는 해결 말고는 별다른 방법이 없었다. (혹시나 호출하려는 api의 url에 http://가 빠져있다면 앞에 추가시켜보자.) 하지만 나의 케이스는 처음부터 잘 붙어 있어서 별다른 도움이 되지 못했다. 결국 url을 잘못 입력하여 난 오류라는 얘긴데, 이리보고 저리보고 3번봐도 url에는 오류가 없었다. 오류.. 2023. 2. 13.