메이븐 프로젝트
-프로젝트당 한번만 할수 있음
[버전 : 주버전.부버전.수버전]
주버전 : 대규모 업데이트
부버전 : 기능이 추가되거나 삭제되었을때(부분적으로)
수버전 : 추가된 기능들이 오류가 났을때
메이븐 프로젝트를 사용하려면
pom.xml 가 있어야 함
객체를 제이슨으로 바꿀수도 있어야 하고 제이슨을 객체로 바꿀수도 있어야 함
gson을 추가했기 때문에 제이슨 오브젝트도 만들수 있음
제이슨의 가장 큰 특징은 처음부터 끝까지 문자열이라는 것이다
제이슨
클래스 안의 클래스
스태틱 없이 쓰면 내부 클래스
클래스 안에 클래스를 사용하려면 무조건 생성해두어야 사용가능
클래스를 생성하지 않고 사용하기 위하여 스태틱 사용
스태틱 안에 스태틱만 생성하지 않아도 됨
그냥 클래스는 스태틱 클래스 생성하고 안의 클래스도 생성해야함
빌더 어노테이션 안에는 올아규컨스트럭터도 포함되어있다
원래 값을 넣을 때 널이면 출력해주지 않는데 serializeNulls()를 사용하면 같이 출력해줌
예시1
public class Json2 {
public static void main(String[] args) {
Map<String, Object> map = new HashMap<>();
map.put("a", "test1");
map.put("b", 10.5);
map.put("c", new int[] {10, 20, 30, 40, 50});
System.out.println(map);
// 맵의 값을 문자열로 출력
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String mapJson = gson.toJson(map);
System.out.println(mapJson);
}
}
예시2
public class Json3 {
public static void main(String[] args) {
Gson gson = new Gson();
gson.toJson(null); // object -> json
gson.fromJson("", Class.class); // json -> object
}
}
예시3
public class JsonMap {
public static void main(String[] args) {
Gson gson = new Gson();
gson = new GsonBuilder().setPrettyPrinting().serializeNulls().create();
Map<String, Object> user = new HashMap<>();
user.put("username", "aaa");
user.put("password", "1234");
user.put("name", null);
String userJson = gson.toJson(user);
System.out.println(user);
System.out.println(userJson);
// json -> map
Map<String, Object> userMap = gson.fromJson(userJson, Map.class);
User userObj = gson.fromJson(userJson, User.class);
System.out.println(userMap);
System.out.println(userObj);
JsonObject jsonObject = new JsonObject();
jsonObject.addProperty("test1", "aaa");
jsonObject.addProperty("test2", "bbb");
jsonObject.addProperty("test3", "ccc");
String jsonObjectStr = jsonObject.toString();
System.out.println(jsonObjectStr);
}
}
'백엔드개발자 준비하기' 카테고리의 다른 글
[백엔드개발자 준비하기] 예외처리 (0) | 2023.01.31 |
---|---|
[백엔드개발자 준비하기] 어노테이션 (0) | 2023.01.31 |
[백엔드개발자 준비하기] 컬렉션 (0) | 2023.01.31 |
[백엔드개발자 준비하기] 제네릭 (0) | 2023.01.31 |
[백엔드개발자 준비하기] 싱글톤 (0) | 2023.01.31 |