JSON을 C++로 변환

JSON 입력

에디터 로드 중…

생성된 C++

Configuration

C++ 클래스를 생성하려면 JSON 데이터를 입력하세요

JSON 직렬화 지원을 갖춘 최신 C++ 클래스

JSON을 C++로 변환하는 방법 – 단계별 가이드

이 JSON-C++ 생성기를 사용하여 백엔드 서비스 및 기본 애플리케이션을 위한 JSON 샘플에서 C++ 클래스/구조체를 생성합니다.

  1. 1단계 - JSON 샘플 붙여넣기

    • 대표 JSON 개체 또는 배열을 왼쪽 편집기에 붙여넣습니다.
    • 유형이 올바르게 유추되도록 중첩된 개체, 배열 및 null 허용 필드를 포함합니다.
    • Import을 사용하여 파일, URL 또는 샘플 데이터에서 JSON을 로드합니다.
  2. 2단계 - C++ 생성 옵션 선택

    • 도메인 모델과 일치하는 루트 Class Name을 선택하세요.
    • Null 허용 필드(예: std::optional)를 나타내는 방법을 결정합니다.
    • 배열과 중첩된 객체가 어떻게 매핑되는지 확인하세요(일반적으로 std::vector 및 중첩된 유형).
  3. 3단계 – 생성된 코드 검토

    • 필드 이름, 유형, 배열/객체 모델링 방법을 확인하세요.
    • 가능한 경우 Root Type Name, null 처리 및 프레임워크와 같은 옵션을 조정합니다.
    • 필드가 잘못 추론된 경우 샘플 JSON을 조정하고 다시 생성하세요.
  4. 4단계 - C++에서 생성된 유형 사용

    • 생성된 헤더/소스 파일을 빌드 시스템에 추가합니다.
    • 선호하는 JSON 라이브러리를 사용하여 모델 유형을 구문 분석하고 채웁니다.
    • 스타일 가이드에 맞게 포맷터(예: clang-format)를 실행하세요.
  5. 5단계 - 복사 또는 다운로드

    • 출력을 프로젝트에 복사하거나 파일로 다운로드합니다.
    • 코드 스타일에 맞게 포맷터/린터를 실행하세요.
    • 언어에 필요한 경우 JSON 구문 분석/직렬화 라이브러리를 추가하세요.

빠른 팁

  • 누락되거나 null일 수 있는 필드에는 std::optional을 사용하세요.
  • 앱 경계에 가깝게 구문 분석 및 유효성 검사를 유지하세요.
  • 수동 메모리 관리를 방지하려면 값 유형과 RAII를 선호하세요.
출력 예(단순화)
// JSON 입력
{
  "id": 123,
  "name": "Maeve Winters",
  "email": "[email protected]",
  "active": true,
  "roles": ["admin", "editor"],
  "metadata": { "plan": "pro" },
  "createdAt": "2024-03-01T10:15:00Z",
  "score": 99.5,
  "notes": null
}

// Generated C++ models (simplified)
struct Metadata {
  std::string plan;
};

struct Root {
  int id;
  std::string name;
  std::optional<std::string> email;
  bool active;
  std::vector<std::string> roles;
  Metadata metadata;
  std::string createdAt;
  double score;
  std::nullptr_t notes;
};

관련 JSON 및 C++ 도구

이 JSON-C++ 생성기와 함께 작동하는 더 많은 JSON 및 스키마 도구를 살펴보세요.

자주 묻는 질문

어떤 C++ 기능을 지원하나요?

생성기는 생성자, getter/setter 메서드, JSON 직렬화/역직렬화 기능을 갖춘 최신 C++ 클래스를 생성하며 STL 컨테이너와 스마트 포인터를 지원합니다.

JSON 직렬화는 어떻게 처리되나요?

생성된 클래스에는 nlohmann/json 라이브러리를 사용해 JSON 데이터를 직렬화/역직렬화하는 toJson() 및 fromJson() 메서드가 포함됩니다.

어떤 C++ 표준을 지원하나요?

생성된 코드는 C++11 이상과 호환되며 std::string, std::vector 등 STL 컨테이너를 사용하고, 선택적으로 스마트 포인터 지원을 제공합니다.

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

중첩 객체는 해당 클래스 정의를 생성하고, 배열은 std::vector에 매핑되어 복잡한 중첩 데이터 구조를 지원합니다.

JSON을 C++로 변환 | JSONSwiss