JSON을 Rust로 변환

JSON 입력

에디터 로드 중…

생성된 Rust

Configuration

Rust 구조체를 생성하려면 JSON 데이터를 입력하세요

소유권을 갖춘 메모리 안전 구조체

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

이 JSON-Rust 생성기를 사용하여 Serde를 지원하는 서비스 및 CLI 도구에 대한 JSON 샘플에서 Rust 구조체를 생성합니다.

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

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

    • 루트 Struct Name(예: Root)을 설정합니다.
    • 선택적 필드(Option<T>) 및 알 수 없는 값(serde_json::Value)을 처리하는 방법을 결정합니다.
    • JSON 키가 올바르게 매핑되도록 이름 지정 및 serde 속성을 확인하세요.
  3. 3단계 – 생성된 코드 검토

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

    • 종속성에 serdeserde_json을 추가하고 파생 매크로를 활성화합니다.
    • serde_json::from_str을 사용하여 JSON을 루트 구조체로 역직렬화합니다.
    • 더 강력한 보장이 필요한 경우 역직렬화 후에 유효성 검사를 추가하세요.
  5. 5단계 - 복사 또는 다운로드

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

빠른 팁

  • 누락되거나 null일 수 있는 필드에는 Option<T>을 사용하세요.
  • 타임스탬프 형식이 안정적인 경우에만 chrono 유형을 선호하세요.
  • 유연성을 위해 DTO 구조체를 내부 도메인 유형과 별도로 유지하세요.
출력 예(단순화)
// 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 Rust structs (simplified)
use serde::{Deserialize, Serialize};

#[derive(Debug, Serialize, Deserialize)]
pub struct Metadata {
  pub plan: String,
}

#[derive(Debug, Serialize, Deserialize)]
pub struct Root {
  pub id: i64,
  pub name: String,
  pub email: Option<String>,
  pub active: bool,
  pub roles: Vec<String>,
  pub metadata: Metadata,
  pub created_at: String,
  pub score: f64,
  pub notes: serde_json::Value,
}

관련 JSON 및 Rust 도구

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

자주 묻는 질문

어떤 Rust 기능을 지원하나요?

생성기는 올바른 소유권을 가진 Rust 구조체를 생성하고, Serde 직렬화/역직렬화를 지원하며, 메모리 안전 보장과 함께 Rust 네이밍 규칙을 따릅니다.

Serde 호환 구조체를 생성할 수 있나요?

네! 프레임워크에서 'Serde'를 선택하면 serde 크레이트로 자동 JSON 직렬화를 위한 #[derive(Serialize, Deserialize)] 속성이 포함된 구조체를 생성합니다.

Option 처리는 어떻게 작동하나요?

Rust 생성기는 기본적으로 nullable 필드에 Option<T>를 사용하여 Rust 소유권 모델을 따르는 메모리 안전과 명시적 null 처리를 보장합니다.

빌림(borrowing)과 라이프타임은 어떻게 되나요?

생성된 Rust 구조체는 라이프타임 복잡성을 피하기 위해 소유 타입(String 등)을 사용하면서 Rust의 안전 보장을 유지해 사용하기 쉽게 합니다.

JSON을 Rust로 변환 | JSONSwiss