<Json>
- 중간데이터 (공용어) 이다.
- c언어, 파이썬으로 만든 데이터를 그대로 받으면 java에서 알아들을 수가 없기 때문에 공용어인 Json으로 바꿔서 전송하면 각자의 언어로 다시 바꿀 수 있다.
- Json의 기본 자료형
1. 수 : 정수, 실수 다 가능하다.
2. 문자열(String)
3. 참 / 거짓 (Boolean)
4. 배열 (Array)
5. 객체(Object)
6. null
package ch08;
import com.google.gson.Gson;
class Family{
int 샵 = 2;
String 아버지 = "홍판서";
String 어머니 = "춘섬";
}
class Person {
String 이름 = "홍길동";
int 나이 = 25;
String 성별 = "여";
String 주소 = "서울특별시 양천구 목동";
String[] 특기 = {"농구", "도술"};
Family 가족관계 = new Family();
String 회사 = "경기 수원시 팔달구 우만동";
}
public class JsonEx01 {
public static void main(String[] args) {
Gson gson = new Gson();
// fromJson() 함수 : Json을 java object로 변환
// toJson() 함수 : java object를 json(String)으로 변환
String personJson = gson.toJson(new Person());
System.out.println(personJson);
}
}
- 통신으로 부터 들어오는 데이터는 무조건 String 타입으로 들어온다.
package gsontest;
import com.google.gson.Gson;
public class JsonEx02 {
public static void main(String[] args) {
String jsonPerson = "{\"이름\":\"홍길동\",\"나이\":25,\"성별\":\"여\",\"주소\":\"서울특별시 양천구 목동\",\"특기\":[\"농구\",\"도술\"],\"가족관계\":{\"샵\":2,\"아버지\":\"홍판서\",\"어머니\":\"춘섬\"},\"회사\":\"경기 수원시 팔달구 우만동\"}\r\n" +
"";
Gson gson = new Gson();
}
}

- 데이터의 이름도 문자열이므로, 항상 큰따옴표("")와 함께 입력해야 한다.
package gsontest;
import com.google.gson.Gson;
import java.util.HashMap;
import java.util.Map;
class People {
private String name;
private Integer age;
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
}
public class GsonEx03 {
public static void main(String[] args) {
// 1. 다운 받은 json 데이터
String jsonData = "{\"name\":\"코스\", \"age\": 40}";
System.out.println(jsonData);
// 2. json 데이터 -> java 오브젝트 변환
Gson gson = new Gson();
People people = gson.fromJson(jsonData, People.class);
System.out.println(people.getName());
System.out.println(people.getAge());
}
}

json 데이터 양식을 java 데이터로 편하게 변환하기 위해서

- 이 사이트에 붙여넣고 Preview 하면 변환된 값이 나온다.

- 값 복사 붙여넣기 후 결과값 확인

다시 한번 정리
1. BufferedReader
InputStream(문자 X, 바이트) + InputStreamReader(문자 O, 가변 X) 결합해서 사용
2. JSON
통신을 위한 중간데이터
데이터가 JSON으로 들어오기 때문에 자바 오브젝트로 변경해줘야함
이를 위해서 GSON이 필요
송신 : 자바 오브젝트 --> JSON (gson.toJson())
수신 : JSON(string 타입 : BufferedReader로 읽기 때문에 문자열) --> 자바 오브젝`트 (gson.fromJson())
gson.fromJson()에 담을때 jsonschema2에서 원형이 필요
'Java programing > 프로그래밍 언어 활용' 카테고리의 다른 글
Java - for each문, 자바 컬렉션(List, Queue,Set) , Hash (0) | 2020.04.10 |
---|---|
Java - OSI 계층 (0) | 2020.04.07 |
Java - 접근지정자, 자바 입출력 (0) | 2020.04.06 |
Java - 커피숍만들기, Linked List, ArrayList, Generic (0) | 2020.04.03 |
Java - 햄버거 만들기 (composite) (0) | 2020.04.03 |