Entrée JSON

Sortie Rust

Qu'est-ce que JSON vers Rust ?

Si vous appelez une REST API en Rust, vous avez besoin de définitions de structs correspondantes avant de pouvoir désérialiser quoi que ce soit avec Serde. Écrire ces structs à la main — surtout pour du JSON profondément imbriqué — est fastidieux et source d'erreurs. Cet outil génère automatiquement des structs Rust compatibles Serde. Collez votre JSON, obtenez des structs prêts avec #[derive(Serialize, Deserialize)], et ajoutez-les directement à votre projet Cargo.

Cet outil génère des structs Rust compatibles Serde à partir de votre JSON. Activez Serde pour les attributs #[derive(Serialize, Deserialize)].

La conversion s'exécute entièrement dans votre navigateur. Rien n'est envoyé à un serveur.

Quand JSON vers Rust aide

Lors du développement d'APIs ou de services Rust qui consomment des APIs REST.

Comment utiliser cet outil

1

Coller ou importer JSON

Collez votre JSON dans l'éditeur de gauche ou importez un fichier. Utilisez Exemple pour des données d'exemple.

2

Vérifier les structs générés

Le panneau de droite affiche les structs Rust. Pour un JSON invalide, utilisez le Formatage JSON ou le Validateur JSON.

3

Copier ou télécharger

Utilisez Copier ou Télécharger. Collez dans votre projet Rust.

Exemples JSON vers Rust

Voici un exemple de génération de structs Rust à partir d'un objet JSON.

Exemple : Enregistrement abonné

Entrée JSON :

Entrée

Sortie Rust générée :

Sortie

Quand JSON vers Rust aide

La plupart des développeurs ont besoin de cela lors de l'intégration avec des APIs REST.

Pour fusionner deux fichiers JSON d'abord, il y a l'outil Fusion JSON.

Les exports de base de données, fichiers de configuration ou réponses API sont souvent en JSON.

Questions fréquentes

Comment désérialiser du JSON en Rust avec Serde ?

Ajoutez serde = { version = "1.0", features = ["derive"] } et serde_json = "1.0" à votre Cargo.toml. Dérivez Deserialize sur votre struct, puis appelez serde_json::from_str::<YourStruct>(&json_string). Générez le struct ici en collant votre JSON.

Que fait #[serde(rename)] en Rust ?

#[serde(rename = "jsonKey")] dit à Serde de mapper une clé JSON spécifique vers un nom de champ Rust. Utile quand JSON utilise camelCase (comme planName) mais que votre struct Rust utilise snake_case (plan_name). Le générateur les ajoute automatiquement quand nécessaire.

Comment gérer les champs JSON optionnels ou nullable en Rust ?

Activez Option Types pour envelopper les champs nullable dans Option<T>. Cela signifie que les champs JSON absents ou null se désérialisent en None au lieu de causer une erreur. Vous pouvez aussi ajouter #[serde(skip_serializing_if = "Option::is_none")] pour omettre les champs null lors de la sérialisation.

Mon JSON est-il envoyé à un serveur ?

Non. La génération de structs s'exécute entièrement dans votre navigateur. Votre JSON ne quitte jamais votre machine.

Qu'en est-il des objets JSON imbriqués et des tableaux ?

Les objets JSON imbriqués deviennent des structs Rust séparés, chacun avec son propre #[derive(Serialize, Deserialize)]. Les tableaux deviennent des Vec<T> de ces types de struct. Le générateur gère une profondeur d'imbrication arbitraire.

Outils connexes

Pour JSON en Rust, voir Serde et serde_json. Pour JSON, voir la spécification JSON.