Command Palette

Search for a command to run...

JSON to Array in PHP: json_decode 또는 리터럴?

JSON to Array in PHP: json_decode 또는 리터럴?

T
Toolz Team
|Aug 31, 2026|15 최소 읽기
Google 에서 Toolz.dev 를 선호합니다

데이터 도구 컬렉션의 일부입니다

JSON을 PHP 배열로 변환합니다

JSON 을 PHP 배열 리터럴로 변환합니다. short [] 또는 array() 구문, 들여쓰기 및 선택적 변수 할당을 선택한 다음 결과를 복사합니다. 클라이언트 측을 실행합니다.

JSON을 PHP 배열로 변환합니다를 사용하십시오

나는 다른 어떤 언어보다 PHP 를 더 많이 작성했는데,처음에는 WordPress 플러그인 개발자로 나중에 Laravel 에서 SaaS 백엔드를 구축했으며,끊임없이 올라오고 손으로하는 것에 지친 작은 잡일이 하나 있습니다. 당신은 JSON blob,구성 샘플,API 응답,고정물을 가지고 있으며 소스 코드에서 PHP 배열로 필요합니다. 런타임에 디코딩되지 않고 실제로 리터럴로 파일에 기록됩니다. 손으로 괄호와 화살표를 다시 입력하는 것은 느리고 도구가해야 할 기계 번역의 종류가 정확히되었습니다. 그래서 나는 하나를 내장했습니다 Toolz.dev를, 그리고 이에 대한 안내입니다.

TL;DR: 툴즈 JSON-PHP 배열 변환기 JSON 문서를 구문 분석하고 파일에 바로 붙여넣을 수 있는 PHP 배열 리터럴로 직렬화합니다. JSON 개체는 연관 배열이 됩니다 =>를,JSON 배열은 인덱싱된 배열이 되고,스칼라는 PHP 등가물에 매핑됩니다. 짧게 선택 [] 아니면 클래식 array() 구문, 들여쓰기를 설정하고 선택적으로 결과를 a로 래핑합니다 $variable = [...]; 과제. 그것은 완전히 클라이언트 측을 달린다: 올려주기 없음,가입 없음,오프라인으로 작동한다.

JSON-PHP 배열 변환기란 무엇입니까?

JSON-PHP 배열 변환기는 JSON 문서를 동등한 PHP 배열 리터럴로 바꿉니다. JSON 객체는 와 함께 작성된 연관 배열이 됩니다 => 연산자,JSON 배열은 인덱스 배열이 되고,스칼라는 직접 매핑됩니다: JSON 문자열은 단일 인용 PHP 문자열이 됩니다 true 그리고 false 그대로 있어, null 스테이 null그리고 숫자는 그 값을 유지합니다. 중첩은 어떤 깊이에도 보존되므로,깊이 구조화된 JSON 객체는 같은 모양의 깊이로 구조화된 PHP 배열로 나옵니다.

이것이 유용한 이유는 JSON 과 PHP 배열이 같은 것을 설명한다는 것입니다. 키와 정렬된 값의 트리,다른 구두점을 사용합니다. JSON 은 콜론과 중괄호를 사용합니다; PHP 는 사용합니다 => 그리고 괄호. 그들 사이의 번역은 순수 역학이며,역학은 손으로 수행 할 때 오류가 발생하기 쉽습니다. 특히 잘못 배치 된 단일 괄호가 파일을 끊는 중첩 된 구조에서 변환기는 결정론적으로 번역을 수행하고 유효한 PHP 를 다시 건네줍니다.

이것이 무엇이 아닌지 분명히 밝힐 가치가 있습니다. 그렇지 않습니다 json_decode. PHP 는 런타임에 JSON 을 완벽하게 잘 읽으며,데이터가 문자열로 도착할 때,디코딩하는 것이 올바른 동작입니다. 이 도구는 배열이 소스 코드 자체에 살기를 원할 때 다른 경우에 사용됩니다.

그냥 json_decode 를 사용하지 않는 이유는 무엇입니까?

이것은 모든 PHP 개발자가 묻는 첫 번째 질문이며, 올바른 질문입니다. json_decode($string, true) JSON 문자열을 PHP 배열로 구문 분석하고 PHP 매뉴얼은 JSON 을 소비하는 표준 방법으로 문서화합니다. JSON 이 HTTP 요청,큐, 읽은 파일에서 런타임에 도착하는 데이터인 경우 json_decode 는 정확히 당신이 사용해야 하는 것이며, 그 근처에 있는 코드 생성기는 어디에도 속하지 않습니다.

변환기는 다른 상황을 위한 것입니다: JSON 이 런타임 데이터가 아니라 코드에 전념하고 싶은 것일 때. 내 자신의 작업에서 몇 가지 구체적인 사례. 플러그인과 함께 제공되고 소스에서 읽고 편집할 수 있어야 하는 기본 구성 배열입니다. 한 번 붙여넣고 가져오지 않는 이름에 대한 국가 코드 맵과 같은 조회 테이블. 리터럴이어야 하는 테스트 픽스처로 테스트는 독립적이며 파일 읽기에 의존하지 않습니다. 데이터베이스 마이그레이션을 위한 시드. JSON 이 아닌 복사 붙여넣기 가능한 PHP 여야 하는 문서의 예.

그 모든 것에서 모든 요청에 대해 JSON 문자열을 디코딩하는 것은 낭비일 것이며,데이터를 문자열 리터럴 뒤에 숨길 것입니다. 여기서 편집기는 접을 수 없고,린터는 이를 확인할 수 없으며,리뷰어는 PHP 로 읽을 수 없습니다. 배열을 소스에 쓰면 그 컨버터는 JSON 샘플에서 해당 리터럴로 이동하는 가장 빠른 방법입니다.

여기 한 테이블의 결정이 있습니다.

상황 사용 왜
JSON은 데이터로 런타임에 도달합니다 json_decode($json, true) 구문 분석이 직업입니다; 역동적으로 유지하세요
JSON은 구성, 고정 장치, 시드, 예제입니다 JSON-PHP 배열 변환기 읽을 수 있는 리터럴을 소스에 커밋합니다
PHP 값에서 JSON을 다시 사용해야 합니다 json_encode($array) 반대 방향
당신은 PHP 를 가지고 있습니다 serialize() 스트링 역직렬화 도구 그것은 완전히 다른 형식입니다

짧은 것의 차이점은 무엇입니까 [] 그리고 array() 구문?

그들은 동일한 배열을 생성합니다; 대괄호만 다릅니다. 짧은 구문은 사용됩니다 [ 그리고 ] 그리고 지금은 고대 역사 인 PHP 5,4 이후 사용할 수 있습니다,그래서 어떤 현대 코드베이스 짧은 구문에 대한 기본값과 내가 도달 하나입니다. 클래식 array() 양식은 지금까지 출시 된 PHP의 모든 버전에서 작동, 이는 여전히 그것을 선택 하는 유일한 이유입니다: 당신은 PHP 5.4 보다 오래 된 런타임을 목표로, 또는 스타일 가이드 긴 양식을 의무화 하는 코드베이스.

이 도구를 사용하면 JSON 을 다시 붙여 넣지 않고도 전환 할 수 있으므로 이전 프로젝트에 기여하는 경우 한 번의 클릭으로 집 스타일을 일치시킬 수 있습니다. 새로운 것에 대한 나의 조언은 짧은 구문이며 현대 PHP 코딩 스타일 인 PSR-12 가 그 주위에 작성됩니다.

문자열과 특수 문자는 어떻게 처리되나요?

이것은 자신의 빠른 변환기를 작성하는 사람들을 물게하는 부분이므로 설명 할 가치가 있습니다. 이 도구는 PHP 단일 인용 리터럴로 문자열을 방출합니다. 작은 따옴표 안에서 PHP 는 거의 모든 문자를 문자 그대로 취급합니다; 특별한 유일한 두 가지는 백슬래시와 작은 따옴표 자체입니다. 따라서 변환기는 정확히 그 두 가지를 벗어나 백슬래시는 두 개의 백슬래시가되고 작은 따옴표는 선행 백슬래시를 얻고 다른 모든 것은 그대로 둡니다.

그것은 즐거운 결과를 가지고 있습니다. JSON 문자열 내부의 개행은 단일 인용 PHP 문자열 내부의 실제 개행으로 나오며,이는 유효하고 문자를 정확하게 보존합니다. 도구가 순진하게 이중 인용 이스케이프 시퀀스를 적용하려고 시도하면 얻을 수있는 맹글링을 얻지 못합니다. JSON 문자열과 같은 O'Brien 된다 'O\'Brien'및 Windows 경로와 같습니다 C:\Users 된다 'C:\\Users'둘 다 올바른 PHP입니다. 값의 아포스트로피가 구문을 자동으로 깨뜨린 구성 파일을 디버깅한 적이 있다면 이 작업이 처리된다는 점을 이해하게 될 것입니다.

컨버터는 어떻게 사용하나요?

흐름은 네 단계입니다. 입력 상자에 JSON 개체 또는 배열을 붙여 넣습니다; 출력의 모양을 먼저 보려면 샘플을로드하십시오. 배열 구문을 선택,짧은 [] 또는 array(). 들여쓰기를 프로젝트에 맞게 2 칸,4 칸 또는 탭으로 설정하고,선택적으로 변수 이름을 입력하여 출력을 로 감쌉니다 $config = [...]; 후행 세미콜론으로,파일에 드롭할 준비가 됩니다. 그리고 변환을 클릭하고 결과를 복사합니다.

JSON 이 유효하지 않은 경우 도구는 묵묵히 실패하는 대신 parser's 자체 오류 메시지를 보고하므로 길 잃은 후행 쉼표 또는 인용되지 않은 키를 빠르게 찾을 수 있습니다. 그리고 모든 것이 브라우저에서 실행되기 때문에 값이 임의의 서버로 보낼 것이 아닐 때 중요한 머신을 떠나지 않고 실제 API 응답이나 개인 구성을 붙여넣을 수 있습니다. 해당 클라이언트 측 모델은 사이트의 나머지 부분 뒤에 있는 모델과 동일합니다 데이터 개인 정보 보호 온라인 도구 가이드.

이것이 다른 JSON 도구와 어떻게 맞습니까?

JSON 에서 PHP 배열 변환기는 사이트에 JSON 변압기의 작은 가족의 한 구성원이며,그들은 동일한 구문 분석 코어를 공유합니다. JSON 을 먼저 정리하고 싶을 때,the JSON 포맷터 들여쓰기하고 유효성을 검사합니다. PHP 대신 TypeScript 인터페이스와 동일한 데이터가 필요한 경우 JSON에서 TypeScript로 변환합니다 유형을 추론합니다. 대상이 스프레드시트 또는 데이터베이스 로드인 경우,the JSON 에서 CSV 변환기 그것을 줄로 평평하게 만듭니다 JSON 에서 YAML 변환기 YAML 을 선호하는 구성 형식을 처리합니다.

특히 PHP 개발자에게 있어서 알아야 할 이웃은 다음과 같습니다 역직렬화 도구PHP's를 처리하는 것은 소유합니다 serialize() 형식입니다. 그것은 JSON 과는 다른 짐승입니다. 세션 데이터와 일부 WordPress 옵션 값에서 찾을 수있는 PHP 전용 와이어 형식이며 두 도구는 구조화 된 데이터가 PHP 프로젝트에 일반적으로 표시되는 두 가지 방법을 다룹니다. 스택 전체에서 작업하는 경우 웹 개발자 툴킷 검거는 이러한 조각이 어떻게 함께 배열되는지 보여줍니다 개발자 생산성 도구 가이드는 더 넓은 세트를 다룹니다.

WordPress 및 Laravel 워크플로의 실제 예입니다

내가 가장 명중 두 곳으로이 콘크리트를 만들 수 있습니다. 워드 프레스 플러그인에서,당신은 종종 활성화 옵션 테이블을 시드 기본 설정 배열을 발송. 그 구조는 자주 JSON 샘플로 생활을 시작하는 개발 중에,어쩌면 설정 UI 에서 내보내거나 스키마를 설계하는 동안 스케치 된 것을 손으로 번역하는 대신,나는 변환기에 JSON 을 붙여 넣습니다,plugin's 스타일과 일치하도록 짧은 구문과 4 공간 들여 쓰기를 선택합니다,타이프 defaults 변수 이름으로, 그리고 돌아갑니다 $defaults = [ ... ]; 그것은 곧바로 a로 떨어집니다 get_default_settings() 기능. 키는 읽기 쉽게 유지되고 리뷰어는 diff 에서 모양을 볼 수 있으며 모든 페이지로드에 런타임 디코드가 없습니다.

Laravel 측은 유사하지만 config 와 seeders 에 나타납니다. config 파일은 큰 연관 배열을 반환하고,나는 정기적으로 그 배열이 될 필요가 일부 타사 매핑의 JSON 버전,통화 테이블,기능 플래그의 집합,계획의 목록을 변환기는 JSON 을 리터럴로,나는 그것을 감싸 return [ ... ]; 구성 파일이 예상하고 이제 값은 프레임워크가 캐시하는 일류 PHP입니다 config:cache 문자열에서 구문 분석되는 대신. 데이터베이스 시더의 경우 동일한 트릭이 작동합니다: 샘플 행의 JSON 을 붙여넣고 배열을 가져와 피드합니다 insert().

내가 컨버터에 기대는 이유는 json_decode(file_get_contents(...)) 이러한 지점에는 게으름이 없으며 리터럴을 커밋하면 데이터가 코드 검토의 일부, 정적 분석의 일부, 버전 기록의 일부가 사람이 읽는 형식으로 만들어집니다. 코드 옆에 있는 JSON 파일은 PHP linter에 보이지 않습니다; 소스의 배열은 그렇지 않습니다. 데이터가 애플리케이션에 입력되지 않고 애플리케이션의 고정된 부분인 경우 해당 가시성은 일회성 변환의 가치가 있습니다.

더 많은 가이드를 작성하기 시작할 때까지 내가 과소 평가했던 문서화 각도도 있습니다. README 또는 지식 기반에서 PHP 예제를 표시하려고 할 때 JSON blob 은 복사 붙여 넣기 가능한 PHP 가 아니며,이를 잡은 독자는 구문 오류를 먼저 실행한다는 것은 독자가 파일에 떨어 뜨려 작업을 볼 수있는 docs 의 예제가 실제적이고 실행 가능한 PHP 라는 것을 의미하며 이는 문서의 품질을 조용히 높이는 작은 것입니다.

알만한 가치가 있는 한계는 무엇입니까?

몇 가지 정직한 가장자리. 가장 큰 것은 숫자 정밀도이며,이는이 도구가 아닌 일반적으로 JSON 구문 분석의 속성입니다. 변환기는 숫자를 이중 정밀도 플로트로 나타내는 browser's JSON 파서로 JSON 을 구문 분석합니다. 대략 2 에서 53 제곱을 넘어 정수,16 자리 숫자는 도구가보기 전에 구문 분석 시간에 정밀도를 잃습니다. 매우 큰 정수 ID 로 JSON 을 변환하는 경우 JSON 에서 문자열로 처리하여 정확하게 유지하십시오. 모든 JSON.parse 기반 변환기는이 제한을 공유합니다; 그렇지 않으면 거짓말을한다고 주장한 도구.

둘째,PHP 배열 키 강제. PHP 는 정수처럼 보이는 문자열 키를 실제 정수 키로 조용히 변환합니다. 변환기는 객체 키를 인용 문자열로 쓰는데,이는 명시적이고 정확하지만 PHP 자체가 치료할 수 있다는 것을 알고 있어야 합니다 '0' 그리고 0 런타임 시 동일한 키로. 이는 키가 숫자 문자열인 개체에 대해서만 중요하며 동작은 도구's가 아니라 PHP's입니다.

셋째,빈 컨테이너.빈 JSON 객체 {} 그리고 빈 JSON 배열 [] 둘 다 됩니다 [] PHP 에서는 PHP 배열이 이 둘을 구별할 수 없기 때문입니다. 그것은 매핑의 진정한 모호함이지 바로가기가 아니며,그 차이를 보존하는 PHP 구성이 없습니다.

마지막으로,출력은 값이 아니라 문입니다,변수 이름을 공급하지 않는 한. 하나가 없으면 기존 표현식에 붙여 넣을 때 원하는 바인 베어 리터럴을 얻습니다; 하나가 있으면 세미콜론으로 끝나는 완전한 할당을 얻습니다. 변수 이름은 유효성이 검사되므로 잘못된 식별자는 깨진 PHP 를 생성하는 대신 명확한 메시지와 함께 거부됩니다.

자주 묻는 질문

JSON-PHP 배열 변환기란 무엇입니까? JSON-PHP 배열 변환기는 JSON 문서를 동등한 PHP 배열 리터럴로 변환합니다. JSON 객체는 => 연산자,JSON 배열은 인덱스 배열이 되고 스칼라 유형은 PHP 대응 항목에 매핑되므로 결과를 스크립트에 직접 붙여넣을 수 있습니다.

JSON 을 PHP 배열로 변환하려면 어떻게 해야 하나요? 입력 상자에 JSON 을 붙여넣고 짧은 [] 또는 array() 구문과 들여쓰기 스타일을 선택한 다음 변환을 클릭합니다. 이 도구는 복사할 수 있는 PHP 배열 리터럴을 빌드하며, 변수 이름을 입력하면 선택적으로 변수 할당으로 래핑됩니다.

짧은 []와 array() 구문의 차이점은 무엇입니까? 그들은 동일한 배열을 생성한다; 괄호만 다르다. 짧은 구문은 []를 사용하고 PHP 5.4 이후로 사용 가능했지만 array()는 모든 PHP 버전에서 작동하는 이전 형식이다. PHP 5.4보다 오래된 런타임을 지원해야 하는 경우에만 array()를 선택한다.

이것이 PHP 에서 json_decode 를 대체합니까? No.json_decode($json, true)는 런타임에 JSON 문자열을 배열로 구문 분석하는데, 이는 JSON이 데이터로 도착할 때 바로 해당됩니다. 이 도구는 대신 소스 코드에 배열을 작성합니다. 이는 모든 요청에서 디코딩되지 않고 파일에 있어야 하는 구성, 고정 장치, 시드 데이터 및 예제에 적합합니다.

JSON 객체와 배열은 어떻게 매핑됩니까? JSON 객체는 PHP 연관 배열이 되며,각 키는 단일 인용 문자열 뒤에 =>가 붙고 그 값이 됩니다. JSON 배열은 요소들을 순서대로 가지고 인덱스된 PHP 배열이 됩니다. 중첩은 소스에서와 정확히 같이 어떤 깊이에도 보존됩니다.

문자열과 특수 문자는 어떻게 처리되나요? 문자열은 PHP 단일 인용 리터럴로 방출되므로 백슬래시와 단일 인용만 이전 백슬래시와 함께 이스케이프됩니다. 실제 개행 문자를 포함한 다른 모든 문자는 그대로 유지되며 이는 PHP가 단일 인용 문자열을 처리하는 방식과 일치합니다.

내 json이 아무데나 업로드됩니까? 아니요. 변환은 전적으로 기기에서 JavaScript 를 사용하여 브라우저에서 이루어집니다. JSON 은 업로드,로그 또는 저장되지 않으며,페이지가 로드되면 도구가 연결 해제된 네트워크와 계속 작동합니다.

JSON-PHP 배열 변환기는 무료입니까? 예. 가입도 없고 워터마크도 없고 사용량 상한선도 없이 완전 무료입니다. 개인 또는 상업 프로젝트에 필요한 만큼의 JSON 문서를 PHP 배열로 변환합니다.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!