PHP 배열 ↔ JSON 변환기 완벽 가이드
PHP 배열(Array)과 JSON(JavaScript Object Notation)은 웹 개발에서 가장 많이 사용되는 데이터 직렬화 형식입니다. PHP 백엔드와 JavaScript 프론트엔드 사이에서 데이터를 주고받을 때, API 응답 형식을 설계할 때, 또는 설정 파일을 마이그레이션할 때 두 형식 간의 변환은 필수적인 작업입니다. 이 도구는 PHP의 array() 구문과 PHP 5.4 이상에서 지원하는 [] 단축 문법을 모두 인식하며, 연관 배열의 => 키-값 쌍은 물론 다중 중첩 배열 구조까지 정확하게 파싱하여 올바른 JSON으로 변환합니다.
역방향 변환(JSON → PHP 배열)도 지원하여, REST API에서 받은 JSON 응답을 PHP 코드에서 바로 사용할 수 있는 배열 리터럴로 변환할 수 있습니다. 출력 시 들여쓰기 옵션을 제공하여 가독성 높은 코드를 생성하며, 압축 모드를 선택하면 최소한의 용량으로 데이터를 전송할 수 있습니다. 별도의 PHP 런타임이나 서버 설치 없이 브라우저에서 직접 JavaScript 기반 파서로 동작하므로, 보안이 중요한 프로젝트의 데이터도 안심하고 변환할 수 있습니다.
PHP 개발자라면 json_encode()와 json_decode() 함수에 익숙하실 텐데, 이 도구는 런타임 없이 문자열 수준에서 동일한 변환을 수행합니다. Laravel, CodeIgniter, WordPress 등의 프레임워크에서 config 파일이나 시드 데이터를 JSON 형식으로 전환하거나, 그 반대 작업을 할 때 매우 유용합니다. 복잡한 다차원 배열도 재귀적으로 처리하여 데이터 구조가 손실되지 않습니다.
주요 기능
- 양방향 변환: PHP 배열 → JSON, JSON → PHP 배열 모두 지원
- 문법 호환:
array()전통 문법과[]단축 문법 모두 파싱 - 중첩 구조: 다중 레벨 중첩 배열을 재귀적으로 처리
- 데이터 타입 보존: 문자열, 숫자, boolean, null 타입을 정확히 변환
- 들여쓰기 옵션: 2칸, 4칸, 탭, 압축(한 줄) 선택 가능
- 브라우저 전용: 서버 전송 없이 클라이언트에서 안전하게 처리
사용 방법
- 상단 토글로 변환 방향(PHP→JSON 또는 JSON→PHP)을 선택합니다.
- 입력란에 PHP 배열 코드 또는 JSON 문자열을 붙여넣습니다.
- 원하는 들여쓰기 옵션을 선택합니다.
- '변환하기' 버튼을 클릭하면 결과가 즉시 표시됩니다.
- '복사하기' 버튼으로 결과를 클립보드에 복사할 수 있습니다.
자주 묻는 질문 (FAQ)
Q. PHP의 array() 문법과 [] 문법을 섞어서 사용해도 되나요?
A. 네, 두 문법을 혼합하여 사용할 수 있습니다. 예를 들어 array('items' => ['a', 'b', 'c'])처럼 외부는 array(), 내부는 []를 사용하거나 그 반대도 정확하게 파싱됩니다. 파서는 재귀적으로 동작하므로 어떤 조합이든 올바르게 처리합니다.
Q. 변환 시 데이터가 외부 서버로 전송되나요?
A. 아닙니다. 모든 변환 로직은 브라우저 내 JavaScript로 실행되며, 입력한 데이터는 어떤 서버로도 전송되지 않습니다. 데이터베이스 설정, API 키 등 민감한 정보가 포함된 배열도 안전하게 변환할 수 있습니다.
Q. JSON에서 PHP로 변환할 때 array() 문법과 [] 문법 중 어느 것으로 출력되나요?
A. PHP 5.4 이상에서 표준인 [] 단축 문법으로 출력됩니다. 이는 현재 PHP 커뮤니티에서 권장하는 스타일이며, 대부분의 현대 PHP 프로젝트에서 사용하는 방식입니다.
Q. PHP 상수(예: true, false, null)는 어떻게 처리되나요?
A. PHP의 true, false, null 키워드는 JSON의 동일한 값으로 정확하게 변환됩니다. 대소문자 구분 없이 TRUE, False, NULL 등도 모두 인식합니다.
Q. 연관 배열과 인덱스 배열을 어떻게 구분하나요?
A. => 연산자가 있으면 연관 배열(JSON 객체)로, 없으면 인덱스 배열(JSON 배열)로 변환됩니다. PHP에서 array(1, 2, 3)은 JSON [1, 2, 3]으로, array('a' => 1, 'b' => 2)는 JSON {"a": 1, "b": 2}로 변환됩니다.