코딩배움일지/JAVA

Java 16일차 2(JSON)

karatejin 2022. 12. 1. 10:43

유저 객체

 

import com.google.gson.annotations.Expose;

import lombok.Builder;
import lombok.Data;

/*
 * serialize (Object -> Json)
 * deserialize(Json -> Object )
 */

@Builder
@Data
public class User {
	@Expose(serialize = true, deserialize = true ) /*serialize = true 뜨게한다.*/ /*deserialize = true 뜨게한다.*/
	private String username;
	@Expose(serialize = false,deserialize = false ) /*serialize =* 이거 잡는순간 다 해줘야함.*/
	private String password;
	@Expose(serialize = true ,deserialize = false)
	private String name;
	@Expose(serialize = true ,deserialize = true)
	private String email;

}

 

 

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

public class Gson2 {

	public static void main(String[] args) {
	
		User user = User.builder()
				.username("junil")
				.password("1234")
				.name("김준일")
				.email("junil1218@gamil.com")
				.build();
		
		System.out.println(user);
		
		Gson gson = new GsonBuilder().setPrettyPrinting().create();
		
		String userJson = gson.toJson(user); /* user 객체를 json 으로 변환*/
		
		System.out.println(userJson);
		
		System.out.println();
		
		User userObj = null;
		
		userObj = gson.fromJson(userJson, User.class); /*json 을 user 객체로 변환*/
		
		System.out.println(userObj); /*user 객채로 변환 확인*/

	}

}

User(username=junil, password=1234, name=김준일, email=junil1218@gamil.com)
{
  "username": "junil",
  "password": "1234",
  "name": "김준일",
  "email": "junil1218@gamil.com"
}

User(username=junil, password=1234, name=김준일, email=junil1218@gamil.com)

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

@Expose(serialize = true, deserialize = true ) 적용 했을때

User(username=junil, password=1234, name=김준일, email=null)
{
  "username": "junil",
  "name": "김준일",
  "email": null
}

User(username=junil, password=null, name=null, email=null)

import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;

public class Gson3 {

	public static void main(String[] args) {
		
		JsonObject jsonObject = new JsonObject();
		
		jsonObject.addProperty("username", "junil");
		jsonObject.addProperty("password", "1234");

		System.out.println(jsonObject); /*json 형태로 바로 들어간다.*/ /*맵을 거칠 팔요가 없다.*/
		
		JsonArray jsonArray = new JsonArray(); /*JsonElement(); 추상클래스 생성 안된다 */
		jsonArray.add("java");
		jsonArray.add("python");
		jsonArray.add("javascript");
		jsonArray.add("c#");
		
		System.out.println(jsonArray);
		
		jsonObject.add("subject", jsonArray); /*json 은 키와 밸류를 가진다.*/ /*json 안에 배열 을 추가한것*/
		
		System.out.println(jsonObject);
	}

}

 

{"username":"junil","password":"1234"}
["java","python","javascript","c#"]
{"username":"junil","password":"1234","subject":["java","python","javascript","c#"]}