JSON 이란? - HTTP-2

Kim taegwan·2026년 4월 4일

HTTP 응답으로 받은 이 문자열, 어떻게 쓰죠?

HTTP-1 에서 서버로부터 이런 응답을 받았습니다.

{"userId":1,"id":1,"title":"sunt aut facere...","body":"quia et suscipit..."}

이것이 JSON 형식입니다. 그런데 지금은 그냥 긴 문자열 하나입니다. title 값만 꺼내려면 어떻게 해야 할까요?


JSON 이란?

JSON(JavaScript Object Notation) 은 데이터를 저장하고 전송하기 위한 텍스트 형식입니다.

핵심:
JSON 은 "이렇게 생긴 문자열" 입니다.
통신 방법도, 프로그래밍 언어도 아닙니다.
서버와 클라이언트가 데이터를 주고받을 때 가장 많이 쓰는 형식입니다.

JSON 기본 구조

Object - 중괄호 {}

키-값 쌍으로 이루어집니다.

{
  "name": "철수",
  "age": 25,
  "email": "chulsu@email.com"
}

Array - 대괄호 []

여러 값의 목록입니다.

["사과", "바나나", "체리"]

중첩 구조

{
  "name": "철수",
  "hobbies": ["코딩", "독서"],
  "address": {
    "city": "서울",
    "zip": null
  }
}

JSON 데이터 타입

타입표기법예시주의
문자열"큰따옴표""안녕하세요"반드시 큰따옴표
숫자숫자 그대로42, 3.14
불리언소문자true, false소문자만
null소문자null소문자만
객체{ }{"key": "value"}
배열[ ][1, 2, 3]

JSON Object vs JSON Array 구분

// JSON Object - { 로 시작 → 단건 데이터
{
  "id": 1,
  "title": "Java 공부"
}

// JSON Array - [ 로 시작 → 목록 데이터
[
  {"id": 1, "title": "Java 공부"},
  {"id": 2, "title": "Spring 공부"},
  {"id": 3, "title": "DB 공부"}
]

JSON 형식에 텍스트를 자바 언어에서 사용하는 데이터 타입으로 직접 변환

package http.json;

public class NotJsonEx {

    public static void main(String[] args) {
        // HTTP 통신으로 json 형식 데이터를 받았다고 가정.
        // json 형식은 자바에서 문자열로 취급 됨.
        String json = "{ \"name\" : \"철수\", \"age\": 25 }";

        // 위 json 형식에 문자열을 우리 프로그램 내에서 사용을 하려면 파싱을 처리를 해야한다.

        // 단계 1 : 불필요한 기호 제거 (replace 사용)
        // 중괄호와 큰 따옴표 아무것도 없는 상태("")로 만들어 본다.
        String step1 = json.replace("{", "").replace("}", "");
        System.out.println(step1);

        // 단계 2 : 항목별 자르기 (split 사용)
        String[] parts = step1.split(",");
        System.out.println("size : " + parts.length);
        System.out.println(parts[0]);
        System.out.println(parts[1]);

        // 단계 3 : 데이터 추출 및 할당
        // 첫번째 조각에서 "name":"철수" 기준에서 철수라는 값을 추출 ( : ) 기준
        String nameValue = (parts[0].split(":"))[1];
        System.out.println(nameValue);

        // 두번째 조각에서 "age":25 에서 25를 추출
        String ageString = parts[1].split(":")[1];
        System.out.println(ageString);
        int ageValue = Integer.parseInt(ageString.trim());
        System.out.println(ageValue);

        // 단계 4 자바 프로그램에서 이해하는 데이터 타입 -> 객체로 변환
        // 객체 생성
        User user = new User(nameValue, ageValue);
        System.out.println(user.toString());

    }

} // end of class

class User {

    String name;
    int age;

    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

0개의 댓글