← 전체 글

JSON 포맷 예시: 객체, 배열, 실제 패턴

복사해 쓸 수 있는 JSON 예시: 모든 데이터 타입, 중첩 구조, REST API 응답, 설정 파일, 날짜 포맷, GeoJSON —— 흔한 오류 패턴과 그 수정 포함.

JSON을 이해하는 가장 좋은 방법은 예를 읽는 것입니다. 이 가이드는 JSON 형식을 기초부터 짚어 갑니다 —— 단순한 객체, 중첩 구조, 배열, 혼합 타입 —— 그리고 API, 설정 파일, 데이터베이스에서 마주칠 실제 JSON 패턴을 보여 줍니다. 각 예는 유효하고 복사-붙여넣기가 되는 JSON입니다.

테스트, fixture, 문서용 샘플 json 파일 로 쓰세요 —— 아래 각 스니펫은 실제 JSON 예제 값으로, .json 확장자로 저장해 바로 로드할 수 있습니다.

가장 단순한 JSON 예

어떤 유효한 JSON 값도 그 자체가 완전한 JSON 문서입니다. 가장 단순한 JSON 문서는 프리미티브:

"hello"        // 문자열
42             // 숫자
true           // 불리언
null           // null

실무에서 거의 모든 JSON 문서는 객체이거나 배열입니다.

JSON 객체 예

JSON 객체는 키-값 쌍의 모음입니다. 키는 큰따옴표로 감싼 문자열이어야 합니다. 값은 어떤 JSON 타입이든 됩니다.

{
  "id": 42,
  "name": "Alice Chen",
  "email": "alice@example.com",
  "age": 30,
  "active": true,
  "score": 98.6,
  "nickname": null
}

참고: JSON 객체의 키 순서는 보장되지 않습니다 —— 파서는 임의의 순서로 키를 반환할 수 있습니다.

JSON 배열 예

JSON 배열은 값의 순서 있는 리스트입니다. 요소는 서로 다른 타입일 수 있고 순서는 항상 보존됩니다.

// 문자열 배열
["apple", "banana", "cherry"]

// 숫자 배열
[1, 2, 3, 4, 5]

// 혼합 타입
[42, "hello", true, null, { "key": "value" }]

// 객체 배열(API 응답에서 흔함)
[
  { "id": 1, "name": "Alice" },
  { "id": 2, "name": "Bob" },
  { "id": 3, "name": "Carol" }
]

중첩된 JSON 예

객체와 배열은 임의의 깊이로 중첩될 수 있습니다. JSON의 표현력은 여기서 나옵니다.

{
  "user": {
    "id": 1001,
    "name": "Alice Chen",
    "address": {
      "street": "123 Main St",
      "city": "San Francisco",
      "state": "CA",
      "zip": "94102"
    },
    "tags": ["premium", "early-adopter"],
    "preferences": {
      "notifications": {
        "email": true,
        "sms": false,
        "push": true
      },
      "theme": "dark"
    }
  }
}

JSON 형식 예: REST API 응답

전형적인 페이지네이션 API 응답은 이런 모습:

{
  "status": "success",
  "data": {
    "page": 1,
    "per_page": 10,
    "total": 47,
    "total_pages": 5,
    "items": [
      {
        "id": "prod_001",
        "name": "Wireless Headphones",
        "price": 89.99,
        "currency": "USD",
        "in_stock": true,
        "categories": ["electronics", "audio"],
        "rating": 4.7,
        "reviews_count": 2341
      },
      {
        "id": "prod_002",
        "name": "USB-C Hub",
        "price": 39.99,
        "currency": "USD",
        "in_stock": false,
        "categories": ["electronics", "accessories"],
        "rating": 4.2,
        "reviews_count": 891
      }
    ]
  },
  "meta": {
    "request_id": "req_8f3a2c",
    "timestamp": "2024-10-15T14:32:00Z"
  }
}

JSON 설정 파일 예

JSON 형식의 설정 파일은 JavaScript 도구 체인에서 흔합니다. 전형적인 package.json 구조:

{
  "name": "my-app",
  "version": "1.0.0",
  "description": "A sample application",
  "main": "index.js",
  "scripts": {
    "start": "node index.js",
    "test": "jest",
    "build": "tsc"
  },
  "dependencies": {
    "express": "^4.18.2",
    "lodash": "^4.17.21"
  },
  "devDependencies": {
    "typescript": "^5.0.0",
    "jest": "^29.0.0"
  },
  "engines": {
    "node": ">=18.0.0"
  }
}

JSON 데이터 형식: 날짜와 시간

JSON에는 네이티브 날짜 타입이 없습니다. 날짜는 문자열로 표현합니다. ISO 8601이 보편적으로 받아들여지는 형식:

{
  "created_at": "2024-10-15T14:32:00Z",        // UTC 일시
  "updated_at": "2024-10-15T14:32:00+08:00",   // 타임존 오프셋 포함
  "birth_date": "1990-06-21",                   // 날짜만
  "meeting_time": "09:00:00"                    // 시간만
}

혹은 어떤 시스템은 숫자 형태의 Unix 타임스탬프(에폭 이후의 초)를 씁니다:

{
  "created_at": 1728999120,
  "expires_at": 1761057600
}

선택 필드와 null 필드가 있는 JSON

존재하지만 값이 없는 필드는 null; 선택적이고 실제로 없는 필드는 통째로 생략하세요.

{
  "id": 5,
  "name": "Bob",
  "email": "bob@example.com",
  "phone": null,            // 존재하지만 미설정
  "company": "Acme Corp",
  "title": null             // 존재하지만 미설정
  // "fax" 는 통째로 생략 —— 해당 없음
}

JSON 오류 예(및 수정 방법)

흔한 JSON 표기 실수들:

// ❌ 작은따옴표(유효한 JSON 아님)
{ 'name': 'Alice' }

// ✅ 수정: 큰따옴표 사용
{ "name": "Alice" }

// ❌ 따옴표 없는 키
{ name: "Alice" }

// ✅ 수정: 키에 따옴표
{ "name": "Alice" }

// ❌ 후행 쉼표
{ "a": 1, "b": 2, }

// ✅ 수정: 후행 쉼표 제거
{ "a": 1, "b": 2 }

// ❌ JavaScript 주석
{ "debug": true // 로깅 활성화 }

// ✅ 수정: 주석 제거
{ "debug": true }

// ❌ Python 불리언
{ "active": True }

// ✅ 수정: 소문자로
{ "active": true }

JSON 문자열에 위 오류 중 하나가 있으면 JSON Fix 에 붙여 자동 수리 및 포맷팅하세요.

JSON Lines(NDJSON, jsonlines) 예

스트리밍 로그, ML 데이터셋, 대량 API에서는 줄당 한 JSON 값\n 으로 구분하는 관행이 있습니다. 이 형식은 두 이름으로 불립니다 —— jsonlines(jsonlines.org에서)과 NDJSON —— 그러나 스펙은 같습니다:

{"event":"login","user":"ada","at":"2026-05-28T09:00:00Z"}
{"event":"view","user":"ada","page":"/dashboard"}
{"event":"logout","user":"ada","at":"2026-05-28T09:42:00Z"}

각 줄은 독립적으로 파싱됩니다. 파일 전체를 JSON.parse() 하지 마세요 —— 개행으로 split 하고 줄 단위로 파싱하세요.

OpenAPI 응답 예

OpenAPI 스펙은 JSON Schema 풍의 모양으로 응답을 정의합니다:

{
  "openapi": "3.1.0",
  "paths": {
    "/users/{id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": ["id", "email"],
                  "properties": {
                    "id":    { "type": "integer" },
                    "email": { "type": "string", "format": "email" }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

날짜만/시간만 예

ISO 8601은 순수 날짜와 순수 시간 형식도 정의합니다 —— 시각이나 날짜가 본질적으로 의미 없을 때 유용:

{
  "birth_date":   "1815-12-10",         // 날짜만
  "office_hours": "09:00:00",           // 시간만
  "started_at":   "2026-05-28T09:00:00Z" // 전체 일시, 대비용
}

GeoJSON 예

GeoJSON은 JSON 기반의 지리 데이터 표준 형식:

{
  "type": "Feature",
  "geometry": {
    "type": "Point",
    "coordinates": [-122.4194, 37.7749]
  },
  "properties": {
    "name": "San Francisco",
    "country": "US",
    "population": 873965
  }
}

자주 묻는 질문

유효한 JSON 의 예는?

가장 단순한 것은 단일 프리미티브, 예: 42"hello"; 그러나 대부분의 실제 JSON 은 { "name": "Alice", "age": 30, "active": true } 같은 객체이거나 그러한 객체들의 배열입니다.

JSON에서 날짜는 어떻게 표현?

JSON에는 날짜 타입이 없습니다. 날짜는 문자열로 —— 보편적으로 ISO 8601("2024-10-15T14:32:00Z") —— 또는 숫자 Unix 타임스탬프로 저장합니다.

JSON에서 결측값은 어떻게 표현?

존재하지만 값이 없는 필드는 null; 해당 없는 필드는 키를 통째로 생략. JSON에는 undefined 가 없습니다.

중첩된 JSON 은 어떤 모습?

객체와 배열은 임의의 깊이로 다른 객체와 배열을 포함할 수 있습니다 —— 위의 중첩 예와 REST API 예 참고. 기본 규칙은 JSON이란?

예제 시도해 보기

위 예제 중 아무거나 복사해 아래 도구에 붙여 넣어 데이터를 탐색하세요:

  • JSON Fix —— JSON 포맷·검증·수리
  • JSON Diff —— 두 JSON 예제를 좌우로 비교
  • JSON이란? —— 여섯 가지 데이터 타입과 JSON 문법의 완전 가이드
  • JSON 포맷팅 방법 —— JavaScript, Python, jq, 브라우저에서 pretty-print
  • JSON Stringify —— JSON 값을 이스케이프된 문자열 리터럴로 변환