INI → JSON 변환기

INI 파일은 Windows 앱, PHP의 php.ini, 많은 CI 러너에서 여전히 쓰이는 평면 키-값 설정 형식입니다. JSON은 대부분의 현대 라이브러리가 기대하는 형식입니다. 이 변환기는 INI를 순회하며, [section] 블록, key = value 줄, 세미콜론 주석을 존중하면서, 각 섹션이 객체가 되는 동등한 JSON을 반환합니다.

INI를 JSON으로 변환하는 방법

  1. 1

    INI 내용 붙여넣기

    대괄호로 둘러싼 섹션, 그 아래 key=value 쌍을 입력합니다.

  2. 2

    파싱

    주석(";" 및 "#")과 빈 줄은 제거되며 "=" 주변 공백은 무시됩니다.

  3. 3

    JSON으로 매핑

    각 섹션은 JSON 객체가 되고, 어떤 섹션에도 속하지 않은 최상위 키는 루트로 갑니다.

  4. 4

    JSON 복사

    출력은 2칸 들여쓰기로 보기 좋게 정렬됩니다.

예시

입력:

; database config
[database]
host = db.example.com
port = 5432
user = app

[cache]
driver = redis
ttl = 3600

출력:

{
  "database": {
    "host": "db.example.com",
    "port": "5432",
    "user": "app"
  },
  "cache": {
    "driver": "redis",
    "ttl": "3600"
  }
}

변환기가 처리하는 INI 특이점

INI 구문 동작
; 주석 제거됨
# 주석 제거됨(비표준이지만 흔함)
섹션 없음 키가 루트 객체로 감
중복 키 마지막 것이 적용됨
key[] 배열 형식 JSON 배열이 됨(PHP 스타일)
따옴표 값 따옴표 제거, 내부 내용 보존

처리하지 않는 것

  • 타입 추론. INI는 문자열 타입입니다. 42와 “42”는 똑같아 보입니다. “숫자/불리언 시도” 단계를 선택하지 않는 한 모든 값은 JSON 문자열로 나옵니다.
  • 중첩 섹션. 표준 INI에는 중첩 섹션이 없습니다. [database.primary] 블록은 중첩 객체가 아니라 단일 키로 유지됩니다.
  • 여러 줄 값(INI 자체가 허용하는 범위를 넘어서는).

INI가 여전히 의미 있는 경우

비기술 편집자가 다루는 평면 설정이라면 INI를 능가하기 어렵습니다. 한 줄에 키 하나, 중괄호 없음, 매우 관대합니다. 도구가 데이터를 소비해야 하고 중첩 구조가 중요할 때는 JSON이 이깁니다.

자주 묻는 질문

INI가 문자열 타입이기 때문입니다. “42”와 “사십이”는 둘 다 유효한 값이며 변환기는 힌트 없이 구분할 수 없습니다. 숫자 JSON이 필요하면 후처리 단계를 실행하거나, 도구가 지원한다면 “자동 타입 추론”을 활성화하세요.

INI 사양에는 중첩 섹션이 없습니다. [a.b]는 이름에 점이 들어간 단일 섹션일 뿐입니다. 이를 중첩 JSON으로 만드는 것은 표준이 아니라 관례이므로 변환기는 섹션을 평면으로 유지합니다.

네. 같은 섹션의 여러 key[] = value 줄은 JSON 배열로 합쳐집니다. 단일 key[]도 형태 일관성을 위해 한 요소짜리 배열로 나옵니다.

아니요. 파싱은 브라우저에서 일어나며 내용은 외부로 전송되지 않습니다.

관련 도구

이 도구는 다른 언어로도 제공됩니다