logo
GeekFormat

JSON을 PHP로

무료 온라인 JSON to PHP 도구. JSON을 한 번의 클릭으로 실행 가능한 PHP 클래스로 변환합니다. ArrayObject와 stdClass 두 가지 스타일을 지원하고 네임스페이스, typed properties(PHP 7.4+), 선택적 readonly class(PHP 8.1+)를 자동으로 생성하며 JsonSerializable을 구현하고 중첩 객체는 자동으로 독립 클래스로 분할되며 배열은 자동으로 PHP array로 변환되고 브라우저에서 로컬로 실행되어 업로드가 필요하지 않습니다.

관련 추천

JSON to PHP 클래스 및 PHP 엔티티 클래스 모델링에 대해

JSON to PHP 도구(JSON to PHP Converter)는 JSON 데이터 구조를 표준 PHP 클래스 코드로 자동 변환하는 실용적인 도구입니다. 개발자가 네임스페이스 / 클래스 / public 속성 / 생성자를 수동으로 작성하는 반복 작업을 해방시켜주며, 특히 API 인터페이스 문서의 예시 JSON을 Composer 프로젝트에 직접 require할 수 있는 PHP 엔티티 클래스로 빠르게 변환하는 데 적합합니다.

이 도구는 4가지 주요 코드 스타일을 지원합니다: ① ArrayObject 스타일(\ArrayObject 상속, 배열 접근과 객체 접근 지원, Laravel / Symfony Serializer 생태계에서 흔히 사용); ② stdClass 스타일(\stdClass 상속, 객체 접근만 지원, WordPress / json_decode 기본 동작); ③ readonly class 스타일(PHP 8.1+ final readonly class, 생성 후 불변, DTO에 적합); ④ Laravel 통합 스타일(Jsonable + Arrayable 구현, Eloquent API Resource와 함께 사용). 개발자는 프로젝트에서 사용하는 프레임워크에 따라 자유롭게 선택할 수 있습니다.

PHP 타입 매핑은 JSON to PHP의 핵심입니다. 이 도구는 JSON의 기본 타입을 PHP 표준 타입으로 매핑합니다: 문자열은 string으로, 정수는 int로, 부동소수점은 float으로, 불리언은 bool로, 배열은 array로, 중첩 객체는 독립 클래스로(필드명을 대문자로 시작하여 명명), null은 ?type(널러블 속성)으로 매핑합니다. 모든 속성은 PHP 7.4+의 typed properties로 선언되어 IDE에서 직접 타입 검사를 할 수 있습니다.

또 다른 차별화된 하이라이트는 'JsonSerializable 인터페이스 자동 구현'입니다: 생성된 각 PHP 클래스는 자동으로 \JsonSerializable을 구현하고 public function jsonSerialize(): mixed { return [...] } 메서드를 생성합니다. 이는 echo json_encode($user)로 직접 JSON 문자열을 출력할 수 있으며 json_encode가 jsonSerialize()가 반환한 배열 데이터를 자동으로 호출한다는 것을 의미합니다. Laravel에서 Jsonable 인터페이스와 함께 사용하면 추가 처리 없이 직접 return response()->json($user)를 사용할 수 있습니다.

JSON을 서버에 업로드하여 처리해야 하는 일부 온라인 도구와 달리 이 도구의 모든 계산은 브라우저 내에서 완료됩니다. quicktype-core가 Web Worker를 통해 로드되고 실행되며 JSON 파싱, 타입 추론, PHP 코드 생성, ZIP 패키징이 모두 로컬에서 수행되어 어떤 서버에도 데이터를 보내지 않습니다. 이는 API 키, 사용자 개인정보 필드 또는 출시되지 않은 비즈니스 구조가 포함된 JSON에 특히 중요하며 페이지를 닫으면 데이터가 메모리에서 삭제됩니다.

생성된 코드는 일반적으로 Composer 프로젝트에 넣어 사용해야 합니다. composer.json에서 PHP 버전이 요구 사항을 충족하는지 확인하고(PHP 7.4+는 typed properties를 지원하고 PHP 8.1+는 readonly class를 지원함) 생성된 클래스를 src 디렉터리에 복사한 후 네임스페이스(PSR-4)로 자동 로드합니다. 그런 다음 json_decode($jsonString, false) 또는 json_decode($jsonString, true) + 역직렬화로 데이터를 소비하여 PHP 타입 시스템의 편의를 누릴 수 있습니다.

사용 사례

  • Laravel 백엔드 개발: API 인터페이스 문서의 예시 JSON을 Eloquent Model / API Resource 클래스로 빠르게 변환하여 Laravel 내장 Jsonable / Arrayable 인터페이스와 함께 응답 직렬화
  • Symfony Serializer 통합: 타사 API가 반환하는 JSON을 ArrayObject 스타일 PHP 클래스로 변환하여 Symfony Serializer로 심층 객체 매핑 및 데이터 검증
  • WordPress REST API: 사용자 정의 endpoint가 반환하는 JSON 구조를 stdClass 스타일 PHP 클래스로 변환하여 wp_send_json()으로 직접 출력, wp_json_encode() 기본 동작과 일치
  • PHP 8.1+ readonly DTO: JSON을 final readonly class로 변환하여 데이터 전송 객체(DTO)로 사용, 생성 후 불변으로 만들어 비즈니스 로직이 응답 데이터를 실수로 수정하는 것을 방지
  • Composer 패키지 개발: JSON Schema를 PHP 클래스로 변환한 후 Packagist에 게시하여 SDK 모델 계층으로 사용, 다른 Composer 프로젝트에서 require하여 재사용
  • 단위 테스트 픽스처: JSON 픽스처를 PHP 클래스로 변환한 후 json_decode + 역직렬화로 테스트 데이터 기반 테스트를 수행하고 구조화된 필드를 어설션
  • 데이터 마이그레이션 스크립트: JSON 구성 파일을 PHP 클래스로 변환하여 비즈니스 로직에서 강한 타입 접근에 사용, 배열 접근보다 IDE 자동 완성과 타입 검사가 용이
  • 프론트엔드 Mock 연동: 백엔드가 먼저 JSON 모델을 PHP 클래스로 변환하고 프론트엔드는 동시에 해당 TypeScript 인터페이스 / PHP 클래스를 받아 양쪽 타입 일관성 유지
  • 코드 리뷰: API가 반환하는 JSON을 직접 읽기 쉬운 PHP 클래스로 변환하여 Code Review 시 필드 명명, 속성 가시성 논의 용이
  • 레거시 프로젝트 리팩토링: array 연관 배열 동적 접근 기반 코드를 PHP 클래스 기반 강한 타입 접근으로 리팩토링하고 PHPStan / Psalm으로 정적 분석
  • PHPUnit 데이터 제공자: JSON 테스트 데이터를 PHP 클래스로 변환한 후 DataProvider를 통해 테스트 케이스에 주입, IDE가 자동으로 속성 필드 제안
  • snake_case 백엔드 API 연동: 백엔드 API가 snake_case 필드를 반환하면 프론트엔드 PHP 시스템에서 'camelCase로 변환' + ArrayObject 스타일을 활성화하여 원활하게 연동
  • PHPStan 정적 분석: 생성된 클래스는 타입 선언이 기본으로 포함되어 있어 CI에서 phpstan analyse ./src --level=8로 타입 오류를 차단 가능
  • 교육 및 훈련: PHP 교육 시나리오에서 예시 JSON을 PHP 클래스로 변환하여 객체 지향 모델링, 타입 시스템, 인터페이스 구현 시연
  • API Gateway 게이트웨이 계층: 업스트림 마이크로서비스가 반환하는 JSON을 PHP 클래스로 변환하여 게이트웨이 계층에서 집계하고 다운스트림 PHP 서비스가 클래스 속성으로 강한 타입 소비
  • 메시지 큐 소비: RabbitMQ / Kafka에서 소비한 JSON 메시지 본문을 PHP 클래스로 변환한 후 저장하거나 전달하고 JSON_THROW_ON_ERROR로 엄격한 파싱 수행
  • 전자상거래 SKU / SPU 모델링: 상품 JSON 구조(다중 사양 / 다중 이미지 / 다중 속성)를 PHP 클래스로 변환하고 ArrayObject 스타일과 함께 Laravel에서 N+1 쿼리 최적화
  • WebHook 콜백 검증: 결제 게이트웨이, 물류 콜백의 JSON 검증 구조를 PHP 클래스로 변환하고 hash_hmac()으로 서명 검증
  • OpenAPI 도구 체인: OpenAPI 3.x의 schema JSON을 PHP 클래스로 변환하여 Swagger Codegen / Apifox의 PHP 클라이언트 생성 흐름에 연결
  • 데이터 ETL 파이프라인: 업스트림 데이터 소스(MySQL JSON 필드 / MongoDB / Elasticsearch)의 JSON을 PHP 클래스로 변환한 후 데이터 정제 및 적재

이용 방법

  1. 왼쪽 편집기에 JSON 객체(권장) 또는 배열을 붙여넣거나 'Sample'을 클릭하여 중첩된 address / company / tags가 포함된 중국어 예시를 로드
  2. 도구 모음에서 'Settings' 버튼을 클릭하고 팝업에서 선택: ① 루트 클래스명(예: User)과 네임스페이스(예: App\Models) 설정; ② 코드 스타일 선택(ArrayObject / stdClass / readonly class); ③ 코드 스타일 선택(typed properties / Laravel 통합 / Symfony Serializer); ④ 필드 명명 전략 선택(원본 유지 / camelCase / 모두 소문자 / UPPER_SNAKE)
  3. 도구가 400ms 이내에 자동으로 변환하며 오른쪽에 생성된 모든 PHP 클래스가 표시됨(각 클래스는 독립 카드이며 제목 표시줄에 현재 스타일 배지가 실시간으로 표시됨); JSON 형식 오류가 있으면 'JSON 복구' 버튼이 표시됨
  4. 생성된 클래스명, 속성명, 인터페이스가 예상과 일치하는지 확인; 조정이 필요하면 원본 JSON의 키 이름을 수정하거나 Settings를 다시 열어 옵션 수정
  5. 만족하면 개별 클래스의 '복사' 버튼을 클릭하여 IDE에 붙여넣거나 도구 모음에서 'Download ZIP'을 클릭하여 모든 클래스를 한 번에 다운로드(네임스페이스 경로별 디렉터리 구조로 구성)

주요 기능

  • 두 가지 코드 스타일 자유롭게 전환: ArrayObject(\ArrayObject 상속, $obj['key'] 배열식 접근 지원) / stdClass(\stdClass 상속, $obj->key 객체식 접근 지원), Laravel 직렬화, WordPress REST, Symfony Serializer 등 다양한 시나리오에 호환
  • 완전한 PHP 템플릿: 네임스페이스 선언 + use 구문 + 클래스 헤더 주석(Copyright + 생성 타임스탬프) + 클래스 정의 + typed public 속성(PHP 7.4+)을 자동 생성하여 수동으로 보일러플레이트를 작성할 필요 없이 Composer 프로젝트에 직접 require 가능
  • JsonSerializable 인터페이스 자동 구현: 각 클래스는 public function jsonSerialize(): mixed { return [...] }를 자동 생성하여 json_encode()로 직접 JSON을 직렬화하며 추가 보일러플레이트 코드가 필요 없음
  • PHP 8.1+ readonly class 선택 사항: 활성화하면 생성된 클래스에 final readonly class가 추가되고 모든 속성이 readonly가 되어 생성 후 불변이 되며 불변 API 응답 DTO 시나리오에 적합
  • 스마트 타입 추론: string → string, integer → int, float → float, bool → bool, array → array, 중첩 객체 → 독립 클래스, null → ?type(널러블 속성), 수동 필드 타입 지정이 필요 없음
  • 중첩 클래스 자동 분할: 중첩 객체는 필드명을 대문자로 시작하여 독립 PHP 클래스를 생성(예: address → Address), 배열 내 객체는 '끝 s 제거' 규칙으로 명명(예: users → User), 모든 중첩 클래스도 JsonSerializable을 구현
  • 4가지 필드 명명 전략: 원본 유지 / snake_case를 camelCase로(user_name → userName) / 모두 소문자 / UPPER_SNAKE 상수 스타일, PSR-1 / Laravel / Symfony 코드 규범에 맞춤
  • Laravel 원클릭 통합: 체크하면 Jsonable, Arrayable 인터페이스를 자동 구현하고 toArray() / toJson() 메서드를 추가하여 Composer 자동 로드와 함께 Eloquent API Resource로 직접 사용 가능
  • 단일 클래스 복사 + ZIP 다중 파일 다운로드: 각 PHP 클래스마다 독립적인 '복사' 버튼이 있으며 네임스페이스 디렉터리 구조로 구성된 ZIP 패키지(예: App/Models/User.php)를 한 번의 클릭으로 다운로드하여 압축 해제 후 즉시 사용
  • 브라우저 로컬 실행 + 기록: JSON 파싱, PHP 클래스 생성, ZIP 패키징 모두 브라우저 내에서 JavaScript(quicktype-core + JSZip)로 완료되며 데이터가 어떤 서버에도 업로드되지 않음; 최근 200개 입력에 대한 내장 localStorage 기록

코드 예제

PHP: json_encode()로 이 도구가 생성한 클래스 직렬화

php

이 도구로 생성된 PHP 클래스는 기본적으로 JsonSerializable 인터페이스를 구현하여 json_encode()와 함께 JSON을 직접 출력하며 추가 처리가 필요 없습니다.

<?php

require_once 'vendor/autoload.php';

use App\Models\User;

// 模拟从 API 接收到的 JSON 字符串
$jsonString = '{"id":1,"name":"Alice","email":"alice@example.com","isActive":true}';

// 1) 反序列化为本工具生成的类
$userData = json_decode($jsonString, true);
$user = new User(
    $userData['id'],
    $userData['name'],
    $userData['email'],
    $userData['isActive']
);

// 2) 强类型访问字段(IDE 自动补全 + PHPStan 静态检查)
echo $user->name;          // Alice
echo $user->email;         // a****@***********
echo $user->isActive ? '活跃' : '禁用'; // 活跃

// 3) json_encode() 自动调用 jsonSerialize(),无需任何额外代码
echo json_encode($user, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
/*
{
    "id": 1,
    "name": "Alice",
    "email": "alice@example.com",
    "isActive": true
}
*/

PHP: Laravel API Resource 통합 예제

php

Laravel 통합을 체크하면 이 도구로 생성된 클래스는 Eloquent API Resource로 직접 사용할 수 있으며 toArray() / toJson()으로 응답을 형식화합니다.

<?php

namespace App\Http\Controllers;

use App\Models\User;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;

class UserController extends Controller
{
    /**
     * GET /api/users/{id}
     */
    public function show(int $id): JsonResponse
    {
        // 1) 从数据库或外部 API 获取数据
        $userData = $this->fetchUserFromApi($id);

        // 2) 用本工具生成的 User 类包装
        $user = new User(
            $userData['id'],
            $userData['name'],
            $userData['email'],
            $userData['isActive']
        );

        // 3) 直接 return response()->json($user)
        //    Laravel 会自动调用 jsonSerialize()
        return response()->json($user);
    }

    /**
     * POST /api/users
     */
    public function store(Request $request): JsonResponse
    {
        // 4) 反向用法:把请求 JSON 反序列化为 User 类
        $user = User::fromArray($request->all());

        // 5) 用 toArray() 获取数组形式
        $payload = $user->toArray();

        // 6) 执行业务逻辑(如入库 / 调用第三方 API)
        $this->userService->create($payload);

        return response()->json([
            'message' => 'User created',
            'data' => $user,
        ], 201);
    }
}

/*
 * 对应 composer.json 依赖:
 * "require": {
 *     "php": "^8.1",
 *     "laravel/framework": "^11.0"
 * }
 */

PHP: Symfony Serializer 통합 예제

php

이 도구가 ArrayObject 스타일로 생성한 클래스는 Symfony Serializer 구성요소와 함께 심층 직렬화 및 역직렬화에 사용할 수 있어 복잡한 API 게이트웨이 계층에 적합합니다.

<?php

namespace App\Service;

use App\Models\User;
use Symfony\Component\Serializer\SerializerInterface;
use Symfony\Component\Serializer\Normalizer\PropertyNormalizer;

class UserSerializer
{
    private SerializerInterface $serializer;

    public function __construct(SerializerInterface $serializer)
    {
        // 使用 PropertyNormalizer 处理 public 属性
        $this->serializer = $serializer;
    }

    /**
     * 将 User 对象序列化为 JSON 字符串
     */
    public function toJson(User $user): string
    {
        return $this->serializer->serialize($user, 'json');
    }

    /**
     * 将 JSON 字符串反序列化为 User 对象
     */
    public function fromJson(string $json): User
    {
        return $this->serializer->deserialize($json, User::class, 'json');
    }

    /**
     * 批量反序列化(如从 MongoDB 导出的 JSON 数组)
     */
    public function fromJsonArray(string $jsonArray): array
    {
        $users = [];
        $data = json_decode($jsonArray, true);

        foreach ($data as $item) {
            $users[] = User::fromArray($item);
        }

        return $users;
    }
}

// 使用示例
$serializer = new UserSerializer($serializerService);

$json = '{"id":1,"name":"Alice","address":{"city":"Beijing","zip":"100000"},"tags":["php","symfony"]}';

// 反序列化为本工具生成的 User 对象
$user = $serializer->fromJson($json);
echo $user->name;                  // Alice
echo $user->address->city;         // Beijing (强类型访问)
print_r($user->tags);              // ['php', 'symfony']

// 序列化回 JSON
$jsonOutput = $serializer->toJson($user);

Best Practices

대부분의 PHP 백엔드 프로젝트에서 ArrayObject 스타일로 생성된 클래스는 배열 접근($obj['key'])과 객체 접근($obj->key)을 모두 지원하며 기본으로 구현된 JsonSerializable 인터페이스와 함께 json_encode()가 jsonSerialize()가 반환한 배열을 자동으로 호출합니다. 이는 PHP 생태계에서 가장 보편적인 객체 데이터 전달체 작성 방식이며 Laravel, Symfony, CodeIgniter 등 거의 모든 주류 프레임워크와 호환됩니다.

PHP 8.1+에 도입된 readonly class는 DTO의 모범 사례입니다: 생성 후 속성이 불변하여 비즈니스 로직이 응답 데이터를 실수로 수정하는 것을 방지합니다; 생성자 프로모션으로 코드가 더 간결해집니다(public function __construct(public int $id, public string $name) {} 한 줄로 속성 선언 완료). API 응답 DTO, WebHook 콜백 구조, 타사 API 클라이언트 모델을 readonly class 스타일로 변경할 것을 권장합니다.

Laravel 데이터베이스 필드는 기본적으로 snake_case이지만 PHP 속성은 camelCase를 권장합니다. 이 도구의 'camelCase로 변환' 전략은 자동으로 변환하며 jsonSerialize()의 return 배열 키는 원본 snake_case를 유지하여 json_encode() 출력이 여전히 snake_case가 됩니다. 이는 Laravel 모델 접근 습관을 준수하면서 API 호환성도 유지합니다.

생성된 ZIP 패키지는 네임스페이스 경로별로 구성됩니다(예: App/Models/User.php). composer.json에 autoload.psr-4 섹션을 구성합니다, 예: "App\\": "src/", 그런 다음 composer dump-autoload를 실행합니다. 이렇게 하면 Composer가 App\Models\User를 src/Models/User.php에 자동으로 매핑하여 수동 require가 필요 없습니다.

이 도구는 기본적으로 typed properties(PHP 7.4+)를 생성하여 PHPStan --level=8 모드에서 속성 타입을 완전히 추론할 수 있습니다. CI 파이프라인에 phpstan analyse ./src --level=8을 통합하여 타입 오류를 차단할 것을 권장합니다. Psalm도 PropertyTypeProvider를 지원하여 강한 타입 검증을 할 수 있습니다.

이 도구는 완전히 브라우저 로컬에서 실행되어 어떤 데이터도 업로드하지 않습니다. 하지만 습관을 들이세요: ① API 키 / 토큰 / 사용자 개인정보가 포함된 JSON은 변환 전에 비식별화; ② 대규모 내부 비즈니스 구조(출시되지 않은 인터페이스)에 이 도구를 사용할 때는 네트워크 연결이 끊겨 있는지 확인; ③ 코드 생성 후 민감한 정보가 포함된 예시 데이터를 공개 저장소에 커밋하지 않기.

중첩 JSON 객체는 재귀적으로 독립 PHP 클래스를 생성합니다. JSON 중첩 수준이 6계층을 초과하면(예: 다계층 중첩 메뉴, 조직도 트리, 복잡한 비즈니스 문서) 생성되는 클래스 수가 폭발하여(계층당 N개 중첩 클래스) IDE 로딩이 느려지고 유지보수가 어려워집니다. 권장 사항: ① JSON을 여러 모듈로 분할하여 별도로 변환; ② 또는 생성 후 배열 인덱싱($user['profile']['address']['city'])으로 수동 리팩토링하여 클래스 중첩 대신 사용.

JSON null 값은 기본적으로 ?mixed(널러블 mixed)로 추론되는데 이는 안전한 폴백이지만 정확한 타입은 아닙니다. 필드 타입을 알고 있으면(예: "nickname": ""는 string을 추론) 원본 JSON에 먼저 예시 값을 주고 생성 후 예시 값을 삭제한 다음 ?string 같은 정확한 타입으로 변경하면 PHPStan 정적 분석 정확도가 크게 향상됩니다.

자주 묻는 질문

JSON을 PHP 클래스로 어떻게 변환하나요?

왼쪽 입력 상자에 JSON 내용을 붙여넣으면 도구가 400ms 이내에 자동으로 변환합니다; 또는 도구 모음에서 'Convert' 버튼을 클릭합니다. 변환이 완료되면 오른쪽에 생성된 모든 PHP 클래스가 표시되며 각 클래스마다 독립적인 '복사' 버튼이 있습니다; 도구 모음에서 'Download ZIP'을 클릭하면 모든 클래스를 네임스페이스 디렉터리 구조와 함께 패키징하여 다운로드할 수 있습니다.

어떤 JSON 데이터 구조를 지원하나요?

두 가지 구조를 지원합니다: ① JSON 객체(루트 클래스로 사용, RootClass 클래스를 자동 생성); ② JSON 배열(배열의 첫 번째 객체를 루트 클래스 템플릿으로 사용). 모든 중첩 객체는 재귀적으로 독립 클래스로 처리됩니다; 배열 내 객체는 재귀적으로 배열 요소 타입에 해당하는 클래스로 처리됩니다.

생성된 PHP 클래스에는 어떤 내용이 포함되나요?

각 생성된 .php 파일에는 다음이 포함됩니다: ① 파일 헤더 주석(Copyright + 자동 생성 타임스탬프); ② 네임스페이스 선언; ③ use 구문(필요에 따라 \JsonSerializable / \ArrayAccess 등 자동 import); ④ 클래스 정의(설정에 따라 ArrayObject / stdClass / readonly class); ⑤ 구현 인터페이스(설정에 따라 JsonSerializable / Jsonable / Arrayable); ⑥ typed public 속성(PHP 7.4+); ⑦ 생성자(설정에 따라 전체 속성 할당); ⑧ jsonSerialize() / toArray() / toJson() 등의 메서드. php -l 구문 검사와 require 사용에 완전히 준비되어 있습니다.

ArrayObject와 stdClass 스타일의 차이점은 무엇인가요?

ArrayObject 스타일: 생성된 클래스가 \ArrayObject를 상속하여 $obj['key'] 배열 접근과 $obj->key 객체 접근을 모두 지원하며 json_encode() 시 객체를 반환합니다. stdClass 스타일: 생성된 클래스가 \stdClass를 상속하여 $obj->key 객체 접근만 지원하며 더 가볍지만 직접 배열 접근은 할 수 없습니다. Laravel / WordPress 생태계는 기본적으로 stdClass 스타일을 사용하고(json_decode 기본 동작), Symfony Serializer는 기본적으로 ArrayObject 스타일을 사용합니다.

Laravel API Resource 생성을 지원하나요?

네. 설정에서 'Laravel 원클릭 통합' 옵션을 체크하면 도구가 Jsonable, Arrayable 인터페이스 구현을 자동 생성하고 toJson($options = 0)과 toArray() 메서드를 추가합니다; 생성된 클래스는 Eloquent API Resource에서 직접 사용할 수 있습니다(예: new UserResource($user) 또는 $user->toArray()). 또한 Illuminate\Contracts\Support\Jsonable과 Illuminate\Contracts\Support\Arrayable을 자동으로 use 합니다.

PHP 8.1 readonly class 모드로 생성된 코드는 어떤 모습인가요?

readonly class를 활성화하면 생성된 PHP 클래스가 상당히 간소화됩니다. 예를 들어 readonly가 활성화된 User 클래스는 약 12줄입니다: final readonly class User implements \JsonSerializable { public function __construct(public int $id, public string $name) {} public function jsonSerialize(): array { return [...] } }. 모든 속성은 생성자 프로퍼티 프로모션(constructor property promotion)을 통해 readonly로 선언되어 생성 후 불변입니다. 참고: 프로젝트에 PHP 8.1+가 필요하며 readonly 필드는 생성자를 통해서만 할당할 수 있습니다.

snake_case 필드명을 camelCase로 어떻게 변환하나요?

Settings 팝업의 '필드 명명 전략' 그룹에서 'camelCase로 변환' 모드를 선택하면 도구가 JSON 필드명을 snake_case에서 PHP 권장 명명 스타일로 자동 변환합니다. 예: user_name → userName, created_at → createdAt, is_active → isActive. 또한 JSON이 Laravel 라우트 바인딩에서 온 경우 클래스 속성을 $request->userName으로 수동 중간 변환 없이 직접 접근할 수 있습니다.

중첩된 JSON 객체는 어떻게 처리되나요?

도구는 중첩 객체에 대해 자동으로 독립 PHP 클래스를 생성합니다. 명명 규칙: 중첩 객체 키를 대문자로 시작하여 클래스명으로 사용(예: address → Address), 배열 내 객체 키는 끝 s를 제거한 후 대문자로 시작(예: users → User). 모든 중첩 클래스에도 완전한 필드, 생성자, jsonSerialize() 메서드가 포함되며 네임스페이스는 루트 클래스와 일관되며 use App\Models\Address로 가져올 수 있습니다.

배열 필드는 자동으로 무엇으로 변환되나요?

네. JSON의 배열 필드는 자동으로 PHP array 속성으로 변환되며 요소 타입은 첫 번째 요소에서 자동으로 추론됩니다. 예: ["a","b","c"] → array(주석에 array<string>로 어노테이션); [{...},{...}] → array(주석에 array<User>로 어노테이션, User는 키에서 명명된 새 클래스); 빈 배열 []은 기본적으로 array(주석에 array<mixed>로 어노테이션). PHP 8.0+에서 PHPDoc 어노테이션과 함께 IDE에서 타입 힌트를 얻을 수 있습니다.

루트 클래스명과 네임스페이스를 어떻게 수정하나요?

도구 모음 오른쪽 상단에 Settings 버튼이 있습니다; 클릭하면 설정 대화 상자가 열리며 다음을 설정할 수 있습니다: ① 루트 클래스명(기본값 JsonRootClass); ② 네임스페이스(기본값 App\Models). 수정 후 생성된 모든 클래스명이 동기적으로 업데이트되며 ZIP 내 디렉터리 구조도 네임스페이스별로 구성됩니다(예: App/Models/User.php).

다운로드는 단일 .php 파일인가요 ZIP 패키지인가요?

다운로드는 ZIP 패키지(User.zip)이며 네임스페이스 경로별로 구성된 모든 생성 PHP 클래스가 포함됩니다. 예를 들어 네임스페이스가 App\Models일 때 ZIP 내 파일 구조는 다음과 같습니다: App/Models/User.php, App/Models/Address.php, App/Models/Company.php 등. unzip 명령이나 IDE로 Composer 프로젝트 src 디렉터리에 직접 가져올 수 있습니다.

단일 클래스를 IDE에 직접 복사할 수 있나요?

네. 생성된 각 PHP 클래스는 독립 카드로 표시되며 카드 오른쪽 상단에 '복사' 버튼이 있습니다; 클릭하면 전체 클래스의 완전한 코드(<?php + 네임스페이스 + use + 클래스 + 속성 + 생성자 + 메서드 포함)가 클립보드에 복사되어 PhpStorm / VS Code / Sublime 등 IDE에 직접 붙여넣을 수 있습니다.

생성된 클래스가 JsonSerializable 인터페이스를 구현하도록 하려면 어떻게 하나요?

기본적으로 활성화되어 있습니다. 생성된 모든 PHP 클래스는 자동으로 \JsonSerializable을 구현하고 public function jsonSerialize(): array { return [...] } 메서드를 생성합니다; echo json_encode($user)로 직접 JSON 문자열을 출력하거나 Laravel에서 return response()->json($user)를 사용할 수 있습니다.

Symfony Serializer에서 이 도구로 생성된 클래스를 사용할 수 있나요?

네. Symfony Serializer는 기본적으로 array 스타일을 사용하여 데이터를 읽으며 ArrayObject 스타일로 생성된 클래스와 호환성이 좋습니다. SerializerInterface의 $serializer->serialize($user, 'json')으로 직접 직렬화할 수 있으며 deserialize()로 역직렬화할 때 클래스에 public 속성이나 getter가 필요합니다. 이 도구는 public 속성 + 생성자 할당 스타일을 생성하므로 Symfony Serializer의 PropertyNormalizer와 직접 사용할 수 있습니다.

JSON 형식 오류가 있으면 어떻게 하나요?

도구가 JSON 유효성을 자동으로 감지하며 오류 시 오른쪽에 빨간색 오류 알림을 표시하고 'JSON 복구' 버튼을 제공합니다. 클릭하면 일반적인 오류를 자동으로 복구할 수 있습니다: ① 끝부분 여분의 쉼표; ② 작은따옴표를 큰따옴표로 교체; ③ 따옴표가 없는 키에 따옴표 완성; ④ 주석 제거. 복구 성공 후 직접 변환하여 PHP 클래스를 생성할 수 있습니다.

데이터가 서버에 업로드되나요? 프라이버시가 안전한가요?

완전히 브라우저 로컬에서 실행됩니다. 모든 JSON 파싱, PHP 클래스 생성, ZIP 패키징이 브라우저 내에서 JavaScript(quicktype-core + JSZip)로 완료되며 입력된 JSON 데이터와 생성된 PHP 코드는 어떤 서버에도 업로드되지 않고 클라우드에 기록되거나 캐시되지 않습니다. 내부 인터페이스 필드, 출시되지 않은 비즈니스 구조, 공개되지 않은 API 응답이 포함된 민감한 JSON도 안심하고 사용할 수 있으며 페이지를 닫으면 삭제됩니다.

1만 줄의 큰 JSON을 생성하면 느려지나요?

도구에는 명시적인 줄 수 제한은 없지만 브라우저가 매우 큰 JSON을 파싱하고 렌더링하는 것은 느려집니다. 권장 사항: ① JSON을 분할하여 일괄 변환; ② 한 번에 하나의 중첩 수준에 집중; ③ 100개 이상의 클래스를 일괄 생성해야 하는 경우 IDE의 PHP 템플릿 플러그인을 직접 사용하거나 간단한 quicktype CLI 스크립트를 작성하는 것이 좋습니다.

생성된 PHP 클래스는 PHP 7.4 이하 버전을 지원하나요?

완전히 지원하지는 않습니다. 이 도구가 생성하는 클래스는 기본적으로 PHP 7.4+의 typed properties(예: public int $id)를 사용합니다. 프로젝트가 아직 PHP 7.0~7.3인 경우 생성 후 타입 선언으로 인해 오류가 발생합니다. 권장 사항: ① 프로젝트를 PHP 8.1+로 업그레이드(권장, 성능과 타입 시스템이 더 좋음); ② 또는 생성 후 IDE에서 타입 선언을 일괄 제거(찾기 및 바꾸기 `public int ` → `public `); ③ 또는 PHP 7.4 호환 모드 사용(이 도구는 기본적으로 PHP 7.4를 최소 버전으로 함).

문제 해결

'JSON 데이터를 입력해 주세요'가 표시되거나 오른쪽이 비어 있음

왼쪽 입력 상자가 비어 있거나 공백 문자만 있습니다. 유효한 JSON 내용이 붙여넣어졌는지 확인하거나 'Sample'을 클릭하여 중국어 예시를 로드하거나 'Upload'를 클릭하여 .json / .txt 파일을 선택하세요.

'Unexpected token ... in JSON at position N' 표시

JSON 형식이 유효하지 않습니다. 일반적인 원인: ① 끝부분 여분의 쉼표(예: {"a":1,}); ② 큰따옴표 대신 작은따옴표 사용; ③ JSON(예: {"key": "value"}) 대신 JS 객체 표기법(예: {key: value}) 사용. 'JSON 복구' 버튼을 클릭하면 일부 오류를 자동으로 복구할 수 있습니다.

PHP 7.x 프로젝트에서 'Typed property must not be accessed before initialization' 오류 발생

이 도구가 생성하는 클래스는 기본적으로 PHP 7.4+의 typed properties(예: public int $id)를 사용합니다. 프로젝트가 아직 PHP 7.0~7.3인 경우 타입 선언으로 인해 호환성 문제가 발생합니다. 해결 방법: ① 프로젝트를 PHP 8.1+로 업그레이드(권장, 성능과 타입 시스템이 더 좋음); ② IDE에서 타입 선언을 일괄 제거(찾기 및 바꾸기 `public int ` → `public `); ③ 'PHP 7.4 typed properties' 옵션 체크 해제(일부 코드 스타일에만 적용).

PHP 8.1 readonly class에서 'Cannot modify readonly property' 오류

readonly class 스타일로 생성된 속성은 생성 후 수정할 수 없습니다. $user->name = 'Bob'을 시도하면 오류가 발생합니다. 해결 방법: ① ArrayObject 또는 stdClass 스타일로 변경(속성 수정 가능); ② 또는 수정하는 대신 new User(...)로 새 인스턴스를 다시 생성.

Laravel 프로젝트에서 Illuminate\Contracts\Support\Jsonable을 찾을 수 없음

Laravel 통합 스타일에는 laravel/framework 의존성이 필요합니다. composer.json에 다음이 있는지 확인: "require": { "php": "^8.1", "laravel/framework": "^11.0" }. 그런 다음 composer update를 실행하여 의존성을 설치합니다. Laravel을 사용하지 않는 경우 ArrayObject 또는 stdClass 스타일을 선택하세요.

Symfony Serializer 역직렬화 실패 'Cannot denormalize object'

일반적인 원인: ① 생성된 클래스에 public 속성이나 getter 메서드가 없음(Symfony Serializer는 기본적으로 PropertyNormalizer를 사용); ② 클래스에 인수 없는 생성자가 없지만 필수 매개변수가 있음. 해결 방법: ① 이 도구가 public 속성을 생성했는지 확인; ② fromArray() 정적 메서드로 객체를 수동으로 구성한 후 Serializer에 전달.

중첩 객체의 클래스명이 예상과 다름(예: categories가 Categori로 명명)

도구는 배열 내 객체에 '끝 s 제거 + 대문자로 시작' 명명 규칙을 사용합니다; categories 같은 불규칙 복수형에는 친절하지 않습니다. 권장 사항: ① 원본 JSON 키를 단수로 변경(예: categories → category); ② 또는 생성 후 IDE의 이름 바꾸기로 클래스 이름을 변경(모든 참조를 동시에 수정).

다운로드한 ZIP 압축 해제 후 디렉터리 구조가 잘못됨

ZIP 내 디렉터리는 namespace 설정(기본 App/Models/)에 따라 구성됩니다. 압축 해제 후 위치가 잘못된 경우: ① namespace 이름을 수정(예: App\Dto로)하여 다시 다운로드; ② unzip -d src/로 압축 해제 디렉터리 지정; ③ 또는 IDE에서 직접 파일 → 압축 해제된 전체 폴더 열기.

생성된 클래스가 자동 로드되지 않음

Composer 프로젝트는 composer.json에 PSR-4 자동 로드 매핑을 구성해야 합니다, 예: "autoload": { "psr-4": { "App\\": "src/" } }. 그런 다음 composer dump-autoload를 실행하면 Composer가 네임스페이스-디렉터리 매핑으로 클래스 파일을 자동으로 로드합니다.

snake_case를 camelCase로 변환한 후 필드명 접근이 변경됨

'camelCase로 변환'은 PHP 속성명을 변경하지만(예: user_name → userName), jsonSerialize() 메서드의 return 배열 키는 원본 snake_case를 유지하며 json_encode()가 출력하는 JSON은 여전히 원본 필드명입니다. 따라서 PHP 속성에 접근할 때는 $user->userName을 사용하고 JSON 출력은 여전히 {"user_name": "..."}입니다. 역직렬화 시에도 camelCase로 접근하려면 jsonSerialize()의 return 배열에서 키를 camelCase로 변경해야 합니다.

100개 이상의 중첩 클래스 생성 시 페이지가 느려짐

도구에는 명시적인 클래스 수 제한은 없지만 브라우저가 매우 큰 DOM을 렌더링하는 성능이 크게 저하됩니다. 권장 사항: ① JSON을 여러 독립 모듈로 분할하여 별도로 변환; ② 또는 IDE 내장 코드 생성 도구(예: PhpStorm의 JSON to PHP 플러그인)를 직접 사용; ③ 중첩 수준은 6계층을 초과하지 않는 것이 좋으며 그렇지 않으면 JSON 구조 리팩토링을 권장.

배열이 숫자 타입이지만 array<float>가 아니라 array<int> 생성

도구는 배열의 첫 번째 요소로 타입을 추론합니다(예: [1, 2, 3]은 int, [1.5, 2.5]는 float로 추론). 정수와 부동소수점을 혼합하면(예: [1, 2.5]) 도구는 첫 번째 요소로 추론합니다. 해결 방법: ① 원본 JSON에 예시 부동소수점 요소를 하나 이상 추가(예: [0.0, 1.5]); ② 또는 생성 후 PHPDoc 어노테이션에서 타입을 수동으로 조정.

null 값 필드가 ?string이 아니라 ?mixed 타입으로 생성

JSON null 값은 실제 타입을 판단할 수 없기 때문에 도구가 기본적으로 ?mixed 타입으로 추론합니다. 이는 오판을 피하는 안전한 방식입니다. 타입을 알고 있으면 원본 JSON에서 해당 필드에 예시 값을 주고(예: "field": ""는 string을 추론) 생성 후 타입을 ?string으로 변경합니다.

composer dump-autoload 후에도 클래스가 자동 로드되지 않음

가능한 원인: ① namespace가 디렉터리와 일치하지 않음(예: namespace App\Models이지만 파일이 src/Dto/에 있음); ② composer.json의 psr-4 매핑이 잘못됨(예: "App\\": "src/Dto/"는 "App\\Dto\\": "src/Dto/"여야 함). 해결 방법: 각 .php 파일의 namespace가 디렉터리 경로와 엄격하게 일치하는지 확인(namespace 세그먼트는 디렉터리 세그먼트와 같아야 하며 대소문자 구분).

PHPStan이 'Property does not have default value' 알림

생성된 typed properties에 기본값이 없으므로 PHPStan이 --level=8 모드에서 초기화되지 않았을 수 있다고 간주합니다. 해결 방법: ① PHPStan strict rules 비활성화; ② 생성자에서 빈 값을 할당(예: $this->tags = []); ③ readonly class 스타일 사용(생성자 프로모션 후 즉시 할당됨).

Symfony Serializer 객체 배열 역직렬화 실패

[{...},{...}] 같은 객체 배열의 경우 PropertyNormalizer에 요소 타입 힌트가 필요합니다. 해결 방법: ① PHPDoc에 array<User> 타입을 명시; ② 또는 ArrayCollection으로 래핑($users = new ArrayCollection()).

중국어 키가 특수 문자가 포함된 PHP 속성명을 생성

원본 JSON에 중국어 키가 포함된 경우(예: "姓名": "Alice") 도구는 public string $姓名 속성을 생성하며 IDE가 명명 규범이 아니라고 알릴 수는 있지만 오류는 발생하지 않습니다. 권장 사항: ① JSON 키를 영어로 변경(PHP PSR-1 명명 규범에 더 적합); ② 중국어를 유지할 때 PHP 파일 인코딩이 UTF-8인지 확인(PHP는 기본 UTF-8).

ArrayObject 스타일에서 $obj['key']와 $obj->key 출력 순서 불일치

ArrayObject 스타일의 배열 접근은 속성 선언 순서로 반환하고 객체 접근은 jsonSerialize() 메서드의 return 배열 순서로 반환합니다. 두 순서가 일치하지 않으면 echo json_encode() 출력이 var_dump($obj)와 일치하지 않습니다. 권장 사항: jsonSerialize()의 return 순서를 생성자 매개변수 순서와 일치시킵니다.

WebHook 콜백 JSON의 숫자 ID가 PHP_INT_MAX 초과

PHP의 int는 64비트 시스템에서 64비트 부호 있는 정수(최대값 9223372036854775807)입니다; JSON의 숫자 ID가 이 범위를 초과하면(예: Twitter 스노우플레이크 ID) 잘립니다. 해결 방법: ① ID를 문자열 타입으로 수신("id": "1234567890123456789"); ② JSON_BIGINT_AS_STRING 플래그로 파싱.

용어집

namespace
PHP 5.3+에 도입된 네임스페이스 메커니즘으로 클래스명 충돌을 방지합니다. 이 도구는 사용자가 설정한 namespace에 따라 자동으로 생성하며 ZIP에서 App/Models/ 디렉터리로 구성합니다.
class
PHP에서 객체를 정의하는 템플릿입니다. 이 도구가 생성하는 것은 표준 PHP class이며 new User(...)로 직접 인스턴스화할 수 있습니다.
ArrayObject
PHP SPL 표준 라이브러리의 클래스로 ArrayAccess 등의 인터페이스를 구현합니다. 이 도구의 ArrayObject 스타일로 생성된 클래스는 \ArrayObject를 상속하여 배열식과 객체식 이중 접근을 지원합니다.
stdClass
PHP 내장 일반 객체 클래스로 json_decode($json, false)가 기본적으로 이 타입을 반환합니다. 이 도구의 stdClass 스타일로 생성된 클래스는 \stdClass를 상속하여 객체식 접근만 지원합니다.
typed properties
PHP 7.4+에 도입된 속성 타입 선언(예: public int $id)입니다. 이 도구가 생성하는 속성은 기본적으로 타입 선언이 포함되어 있어 IDE와 정적 분석 도구가 직접 타입 검사를 할 수 있습니다.
readonly class
PHP 8.1+에 도입된 읽기 전용 클래스로 클래스 내 모든 속성이 자동으로 readonly가 되어 생성 후 수정할 수 없습니다. 이 도구의 readonly 스타일은 final readonly class를 생성하여 불변 DTO 시나리오에 적합합니다.
JsonSerializable
PHP 5.4+에 도입된 인터페이스로 이 인터페이스를 구현한 객체는 json_encode()로 처리될 때 자동으로 jsonSerialize() 메서드를 호출합니다. 이 도구의 모든 클래스는 이 인터페이스를 자동으로 구현합니다.
Jsonable (Laravel)
Laravel 프레임워크의 계약 인터페이스로 구현 후 객체가 toJson()을 호출하여 JSON을 출력할 수 있습니다. 이 도구의 Laravel 통합 스타일은 이 인터페이스를 자동으로 구현합니다.
Arrayable (Laravel)
Laravel 프레임워크의 계약 인터페이스로 구현 후 객체가 toArray()를 호출하여 배열을 출력할 수 있습니다. 이 도구의 Laravel 통합 스타일은 이 인터페이스를 자동으로 구현합니다.
Composer
PHP 공식 의존성 관리 도구입니다. 이 도구로 생성된 코드를 사용할 때 composer.json에서 PSR-4 자동 로드를 구성해야 합니다(예: App\\: src/).
PSR-4
PHP-FIG에서 제정한 자동 로드 규범으로 네임스페이스-디렉터리 매핑으로 클래스 파일을 로드합니다. 이 도구가 생성한 ZIP 패키지는 네임스페이스 경로별로 구성되어 PSR-4 규범을 준수합니다.
Symfony Serializer
Symfony 구성요소의 직렬화 프레임워크입니다. 이 도구의 ArrayObject 스타일로 생성된 클래스는 Symfony Serializer의 PropertyNormalizer와 함께 심층 직렬화 및 역직렬화에 사용할 수 있습니다.
Eloquent API Resource
Laravel Eloquent의 API 리소스 클래스로 API 응답을 형식화하는 데 사용됩니다. 이 도구의 Laravel 통합 스타일로 생성된 클래스는 API Resource 기본 클래스로 직접 사용할 수 있습니다.
composer.json
Composer 프로젝트의 구성 파일입니다. 이 도구로 생성된 코드를 src 디렉터리에 넣은 후 composer.json의 autoload 섹션을 구성하고 composer dump-autoload를 실행해야 합니다.
json_encode / json_decode
PHP 내장 JSON 직렬화 및 역직렬화 함수입니다. 이 도구로 생성된 클래스가 JsonSerializable을 구현한 후 json_encode()는 자동으로 jsonSerialize() 메서드를 호출합니다.
PHPUnit DataProvider
PHPUnit 테스트 프레임워크의 데이터 제공자 메커니즘입니다. 이 도구로 생성된 PHP 클래스는 DataProvider로 테스트 케이스에 주입될 수 있어 IDE 자동 완성과 함께 테스트 작성 효율이 향상됩니다.
PHPStan
PHP 정적 분석 도구로 코드의 타입 검사, 오류 탐지를 할 수 있습니다. 이 도구로 생성된 클래스는 typed properties가 있으므로 PHPStan --level=8 모드에서 속성 타입을 완전히 추론할 수 있습니다.
Psalm
Vimeo에서 오픈소스한 또 다른 PHP 정적 분석 도구입니다. 이 도구로 생성된 클래스는 Psalm의 PropertyTypeProvider와 함께 강한 타입 검증을 할 수 있습니다.
Doctrine
PHP 생태계의 ORM 및 DBAL 도구 모음입니다. 이 도구로 생성된 PHP 클래스는 Doctrine Entity의 골격으로 사용한 후 #[ORM\Column] 등의 어노테이션을 수동으로 추가할 수 있습니다.
php -l
PHP 명령줄 구문 검사 명령입니다. 이 도구로 생성된 클래스는 먼저 php -l User.php로 구문 검증을 실행한 후 프로젝트에 require할 수 있습니다.
Composer dump-autoload
Composer가 자동 로드 인덱스를 재생성하는 명령입니다. 이 도구로 생성된 클래스를 src 디렉터리에 넣은 후 composer dump-autoload를 실행해야 PSR-4 자동 로드가 인식합니다.
JSON_THROW_ON_ERROR
PHP 7.3+의 json_decode() 오류 처리 플래그로 활성화하면 JSON 파싱 실패 시 JsonException 예외를 던집니다. 이 도구의 Laravel 예제에서는 엄격한 파싱을 사용합니다.
Hash (PHP)
PHP 내장 해시 함수로 주로 WebHook 검증에 사용됩니다. 이 도구로 생성된 WebHook 콜백 클래스는 hash_hmac()와 함께 서명 검증에 사용됩니다.

JSON 타입에서 PHP 타입으로 매핑 빠른 참조표

이 도구는 JSON 값의 타입에 따라 해당하는 PHP 타입을 자동으로 추론합니다; 일반적인 매핑 관계는 다음과 같습니다:

JSON 값 예시판단 방법생성 PHP 타입속성 기본값
nullvalue === null?mixed / ?typenull
true / falsetypeof value === 'boolean'boolfalse
42typeof value === 'number' && Number.isInteger(value)int0
3.14typeof value === 'number' && !Number.isInteger(value)float0.0
"hello"typeof value === 'string'string''
[...] (빈 배열)Array.isArray(value) && value.length === 0array (PHPDoc array<mixed>)[]
["a","b"]Array.isArray(value) && typeof value[0] === 'string'array (PHPDoc array<string>)[]
[1,2,3]Array.isArray(value) && typeof value[0] === 'number'array (PHPDoc array<int>)[]
[{...},{...}]Array.isArray(value) && typeof value[0] === 'object'array (PHPDoc array<Xxx>)[]
{...} (중첩 객체)typeof value === 'object' && !Array.isArray(value)Xxx (독립 클래스)new Xxx()

PHP 4가지 코드 스타일 비교표

도구가 지원하는 4가지 PHP 클래스 코드 스타일, 프로젝트 요구에 따라 선택:

코드 스타일상속 / 수식어구현 인터페이스적용 시나리오
ArrayObject 스타일extends \ArrayObjectimplements \JsonSerializableSymfony Serializer 생태계, $obj['key'] 배열식 접근 필요, PHP 표준 라이브러리 호환
stdClass 스타일extends \stdClassimplements \JsonSerializableWordPress REST API, json_decode 기본 동작 호환, 경량 객체 데이터 전달체
readonly class 스타일final readonly class (상속 없음)implements \JsonSerializablePHP 8.1+, API 응답 DTO, 불변 데이터 전송 객체, 생성 후 데이터 수정 불가 보장
Laravel 통합 스타일상속 없음(기본)implements \Jsonable, \Arrayable, \JsonSerializableLaravel Eloquent API Resource, Eloquent 모델 계층, 컨트롤러 응답 형식화

Privacy & Security

이 JSON to PHP 도구의 모든 JSON 파싱, PHP 클래스 생성, ZIP 패키징 작업은 완전히 귀하의 브라우저에서 JavaScript(quicktype-core + JSZip)로 로컬에서 완료됩니다; 입력된 JSON 데이터와 생성된 PHP 코드는 어떤 서버에도 업로드되지 않으며 클라우드에 기록, 캐시 또는 저장되지 않습니다. 내부 인터페이스 필드, 출시되지 않은 비즈니스 구조, 공개되지 않은 API 응답이 포함된 민감한 JSON도 안심하고 사용할 수 있으며 페이지를 닫으면 모든 데이터가 삭제됩니다. 이 도구는 사용자 추적을 위해 어떤 쿠키도 사용하지 않고 이메일이나 계정 정보를 수집하지 않으며 제3자 분석 스크립트를 삽입하지 않고 모든 계산이 현재 기기의 브라우저 프로세스에서 완료됩니다. 오프라인 환경(예: 네트워크가 끊겨 있거나 인트라넷 격리 환경)에서도 페이지 리소스가 한 번 로드된 후에는 정상적으로 사용할 수 있습니다.

Authoritative References