일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- crud
- component
- springboot
- 스프링
- reactjs
- 스프링부트
- jdk
- JS
- Intellij
- java
- 보안취약점
- React
- table
- 자바스크립트
- 데이터베이스
- restapi
- javascript
- EXTJS
- Spring
- sql
- DATABASE
- 리액트
- mssql
- 자바
- 쿼리
- GIT
- 개발공부
- 컴포넌트
- Vue
- 개발
- Today
- Total
준준의 기록일지
[개발] json과 Gson 본문
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
공부하고 정리하는 것을 중점으로 작성해서 본인 위주로 작성된 경향이 있습니다.
자세한 내용은 출처를 통해 확인해주세요.
출처 : https://galid1.tistory.com/501
JSON
javascript에서 객체를 표현하고, 데이터를 주고 받기 위해 사용된다.
{
"name" : "junho",
"sex" : "male"
}
{} 중괄호 : 객체 표기
[] 대괄호 : 배열
각 속성은 key와 value 쌍으로 구성하고 : (콜론) 으로 구분된다.
속성이 여러개인 경우 , (쉼표)로 구분
장점
가독성 / 가볍다 / 플랫폼에 독립적.
플랫폼의 독립적인 이유
특정 언어나 플랫폼에 독립적이어서 위의 JSON 형식을 지키면 어떤 시스템 간의 데이터 교환이 가능하다.
JSONobject 클래스 인스턴스를 생성해서
String Information ="{'age':20, 'name':'junho'}";
JSONobject json=new JSONobject(Information);
json을 출력하면 json형태의 데이터로 변환되어 출력된다.
이때 임의로 생성한 jsonString이 json 문법에 맞지 않을때의 예외 처리를 위해 try/catch문으로 감싼다.
숫자만 있다면 자동으로 정수형으로 인식하고, 숫자+문자열 또는 문자열로만 이루어진 경우에는 자동으로 문자열로 인식하여 JSONObject로 변환된다.
JSONObject object=new JSONObject();
object.put("age", 20);과 같이 할 수도 있다.
GSON
gson은 json구조를 띄는 직렬화된 데이터를 JAVA의 객체로 역직렬화, 반대의 기능을 해주는 자바 라이브러리이다.
즉, JSON object <-> JAVA Object 를 돕는 라이브러리이다.
사용법은
먼저 라이브러리를 추가하고,
Gson gson=new GsonBuilder().create()로 인스턴스를 생성한다.
만약 Student클래스에 생성자를 만들어서 변수를 초기화했을때
String jsonString="{'age':20, 'name':junho'}";
Student student=gson.fromJsonn(jsonString, Student.class);하고
student.getInfo();와 같이 해당 변수들을 System.out.print해서 확인해보면 JavaObject로 바뀐걸 알 수 있다.
자세한 예제는 출처 참고!!
참고로 Student 클래스 생성자에 다른클래스를 초기화해서 변수를 가지고 있을때 Stduent 클래스를 json으로 변환하면 해당 클래스 내부 객체도 함께 json형식으로 바뀐다.
'개발 전체' 카테고리의 다른 글
[Java] InputStream (0) | 2021.02.25 |
---|---|
[Java] try/catch 문 "고의" 예외처리를 통한 flow 확인 (0) | 2020.10.14 |
[JAVA] String array 를 String으로 변경 (콤마로 구분) (0) | 2020.09.25 |
[개발 펌] 문자열 공백제거 Trim (0) | 2020.08.20 |
[펌]인코딩 - 8859_1 (0) | 2020.08.12 |