๐Ÿ“ŒJSON ์ง๋ ฌํ™”์™€ ์—ญ์ง๋ ฌํ™” ๊ฐœ๋… ์ •๋ฆฌ

์ •๋ณ‘์›…ยท2025๋…„ 3์›” 10์ผ
0

back-end

๋ชฉ๋ก ๋ณด๊ธฐ
4/6

๐Ÿ”ฅ 1. JSON์ด๋ž€?

JSON (JavaScript Object Notation)์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ๊ฒฝ๋Ÿ‰ ๋ฐ์ดํ„ฐ ํ˜•์‹
์ฃผ๋กœ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ตํ™˜์— ์‚ฌ์šฉ๋œ๋‹ค.

๐Ÿ“ JSON ์˜ˆ์ œ

{
  "name": "ํ™๊ธธ๋™",
  "age": 28,
  "skills": ["Java", "Spring", "MyBatis"],
  "isEmployed": true
}

๐Ÿš€ 2. ์ง๋ ฌํ™”(Serialization)๋ž€?

"๊ฐ์ฒด(Object) โ†’ JSON ๋ฌธ์ž์—ด(String) ๋ณ€ํ™˜ ๊ณผ์ •"

๐Ÿ” ์‚ฌ์šฉ ์ด์œ 

  1. ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ JSON ํ˜•์‹์œผ๋กœ ๋ฐ˜ํ™˜ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.
  2. ๋„คํŠธ์›Œํฌ ์ „์†ก ๋ฐ ํŒŒ์ผ ์ €์žฅ์„ ์œ„ํ•ด ๊ฐ์ฒด๋ฅผ ๋ฌธ์ž์—ด(JSON)๋กœ ๋ณ€ํ™˜

๐Ÿ“ ์ง๋ ฌํ™” ์˜ˆ์ œ (Java)

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}

๐Ÿš€ 3. ์—ญ์ง๋ ฌํ™”(Deserialization)๋ž€?

JSON ๋ฌธ์ž์—ด(String) โ†’ ๊ฐ์ฒด(Object) ๋ณ€ํ™˜ ๊ณผ์ •

๐Ÿ” ์‚ฌ์šฉ ์ด์œ 

  1. ํด๋ผ์ด์–ธํŠธ(์›น, ์•ฑ)์—์„œ JSON ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋ฉด, ์„œ๋ฒ„์—์„œ ์ด๋ฅผ Java ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•จ.
  2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”.

๐Ÿ“ ์—ญ์ง๋ ฌํ™” ์˜ˆ์ œ (Java)

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

๐ŸŽฏ 4. ์ง๋ ฌํ™” & ์—ญ์ง๋ ฌํ™” ๋น„๊ต ์ •๋ฆฌ

๊ฐœ๋…์„ค๋ช…์˜ˆ์ œ ์ฝ”๋“œ
์ง๋ ฌํ™” (Serialization)Java ๊ฐ์ฒด๋ฅผ JSON ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜objectMapper.writeValueAsString(person)
์—ญ์ง๋ ฌํ™” (Deserialization)JSON ๋ฌธ์ž์—ด์„ Java ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜objectMapper.readValue(jsonString, Person.class)

๐Ÿ“Œ 5. JSON ์ง๋ ฌํ™”/์—ญ์ง๋ ฌํ™”์˜ ์ฃผ์š” ์–ด๋…ธํ…Œ์ด์…˜ ์ •๋ฆฌ

์–ด๋…ธํ…Œ์ด์…˜์„ค๋ช…์˜ˆ์ œ
@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")
profile
์ธ์ƒ์€ IT ๋…ธ๊ฐ€๋‹ค

0๊ฐœ์˜ ๋Œ“๊ธ€