Java 16일차 2(JSON)
유저 객체
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#"]}