Generador de JSON a Rust

Entrada JSON

Cargando editor…

Rust Generado

Configuration

Ingresa datos JSON para generar structs Rust

Structs seguros en memoria con ownership

Cómo convertir JSON a Rust – guía paso a paso

Utilice este generador de JSON a Rust para crear estructuras Rust a partir de muestras JSON para servicios y herramientas CLI con soporte serde.

  1. Paso 1: pega una muestra JSON

    • Pegue un objeto o matriz JSON representativa en el editor de la izquierda.
    • Incluye objetos anidados, matrices y campos que aceptan valores NULL para que los tipos se infieran correctamente.
    • Utilice Import para cargar JSON desde un archivo, URL o datos de muestra.
  2. Paso 2: elige las opciones de estructura de Rust

    • Establezca una raíz Struct Name (por ejemplo Root).
    • Decida cómo manejar los campos opcionales (Option<T>) y los valores desconocidos (serde_json::Value).
    • Confirme los atributos de nombre y serde para que las claves JSON se asigne correctamente.
  3. Paso 3: revisar el código generado

    • Verifique los nombres de los campos, los tipos y cómo se modelan las matrices/objetos.
    • Ajuste opciones como Root Type Name, manejo de nulos y marcos si están disponibles.
    • Si un campo se infiere incorrectamente, modifique su JSON de muestra y vuelva a generarlo.
  4. Paso 4: usa las estructuras con serde

    • Agregue serde y serde_json a sus dependencias y habilite las macros derivadas.
    • Deserialice JSON en su estructura raíz usando serde_json::from_str.
    • Agregue validación después de la deserialización cuando necesite garantías más sólidas.
  5. Paso 5: copiar o descargar

    • Copie el resultado en su proyecto o descárguelo como un archivo.
    • Ejecute su formateador/linter para que coincida con su estilo de código.
    • Agregue bibliotecas de análisis/serialización JSON si su idioma las requiere.

Consejos rápidos

  • Utilice Option<T> para campos que puedan faltar o ser nulos.
  • Prefiera los tipos chrono solo cuando el formato de su marca de tiempo sea estable.
  • Mantenga las estructuras DTO separadas de los tipos de dominio interno para mayor flexibilidad.
Salida de ejemplo (simplificada)
// entrada 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,
}

Herramientas JSON y Rust relacionadas

Explore más herramientas de esquema y JSON que funcionan muy bien junto con este generador de JSON en Rust.

Preguntas frecuentes

¿Qué características de Rust se admiten?

El generador crea structs Rust con ownership adecuado, admite serialización/deserialización Serde y sigue convenciones de nombres Rust con garantías de seguridad de memoria.

¿Puedo generar structs compatibles con Serde?

¡Sí! Selecciona "Serde" para generar structs con atributos #[derive(Serialize, Deserialize)] para serialización JSON automática con serde.

¿Cómo funciona el manejo de Option?

El generador Rust usa Option<T> por defecto para campos anulables, asegurando seguridad de memoria y manejo explícito de null siguiendo el modelo de ownership de Rust.

¿Qué pasa con borrowing y lifetimes?

Los structs generados usan tipos propietarios (String en lugar de &str) para evitar complejidad de lifetimes, facilitando su uso mientras se mantiene la seguridad de Rust.

Generador de JSON a Rust | JSONSwiss