JSON (JavaScript Object Notation)์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ ์กํ๊ธฐ ์ํ ๊ฒฝ๋ ๋ฐ์ดํฐ ํ์
์ฃผ๋ก ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ ๋ฐ์ดํฐ ๊ตํ์ ์ฌ์ฉ๋๋ค.
{
"name": "ํ๊ธธ๋",
"age": 28,
"skills": ["Java", "Spring", "MyBatis"],
"isEmployed": true
}
"๊ฐ์ฒด(Object) โ JSON ๋ฌธ์์ด(String) ๋ณํ ๊ณผ์ "
import com.fasterxml.jackson.databind.ObjectMapper;
class Person {
public String name;
public int age;
public String[] skills;
public boolean isEmployed;
public Person(String name, int age, String[] skills, boolean isEmployed) {
this.name = name;
this.age = age;
this.skills = skills;
this.isEmployed = isEmployed;
}
}
public class JsonSerializationExample {
public static void main(String[] args) throws Exception {
Person person = new Person("ํ๊ธธ๋", 28, new String[]{"Java", "Spring", "MyBatis"}, true);
ObjectMapper objectMapper = new ObjectMapper(); // Jackson ์ฌ์ฉ
String jsonString = objectMapper.writeValueAsString(person);
System.out.println(jsonString);
}
}
{"name":"ํ๊ธธ๋","age":28,"skills":["Java","Spring","MyBatis"],"isEmployed":true}
JSON ๋ฌธ์์ด(String) โ ๊ฐ์ฒด(Object) ๋ณํ ๊ณผ์
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonDeserializationExample {
public static void main(String[] args) throws Exception {
String jsonString = "{\"name\":\"ํ๊ธธ๋\",\"age\":28,\"skills\":[\"Java\",\"Spring\",\"MyBatis\"],\"isEmployed\":true}";
ObjectMapper objectMapper = new ObjectMapper(); // Jackson ์ฌ์ฉ
Person person = objectMapper.readValue(jsonString, Person.class);
System.out.println("์ด๋ฆ: " + person.name);
System.out.println("๋์ด: " + person.age);
System.out.println("๊ธฐ์ : " + String.join(", ", person.skills));
System.out.println("์ฌ์ง ์ฌ๋ถ: " + person.isEmployed);
}
}
์ด๋ฆ: ํ๊ธธ๋
๋์ด: 28
๊ธฐ์ : Java, Spring, MyBatis
์ฌ์ง ์ฌ๋ถ: true
๊ฐ๋ | ์ค๋ช | ์์ ์ฝ๋ |
---|---|---|
์ง๋ ฌํ (Serialization) | Java ๊ฐ์ฒด๋ฅผ JSON ๋ฌธ์์ด๋ก ๋ณํ | objectMapper.writeValueAsString(person) |
์ญ์ง๋ ฌํ (Deserialization) | JSON ๋ฌธ์์ด์ Java ๊ฐ์ฒด๋ก ๋ณํ | objectMapper.readValue(jsonString, Person.class) |
์ด๋ ธํ ์ด์ | ์ค๋ช | ์์ |
---|---|---|
@JsonInclude(JsonInclude.Include.NON_NULL) | null ๊ฐ์ธ ํ๋๋ฅผ JSON์์ ์ ์ธ | @JsonInclude(JsonInclude.Include.NON_NULL) |
@JsonProperty("json_key") | JSON ํ๋๋ช ๊ณผ Java ํ๋๋ช ์ ๋ค๋ฅด๊ฒ ์ง์ | @JsonProperty("user_name") private String name; |
@JsonIgnoreProperties(ignoreUnknown = true) | JSON์์ ์ ์๋์ง ์์ ํ๋ ๋ฌด์ | @JsonIgnoreProperties(ignoreUnknown = true) |
@JsonFormat(pattern = "yyyy-MM-dd") | ๋ ์ง ํฌ๋งท ์ง์ | @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd") |