Maison > développement back-end > C++ > Comment mapper des propriétés JSON imbriquées à des propriétés C# simples ?

Comment mapper des propriétés JSON imbriquées à des propriétés C# simples ?

Patricia Arquette
Libérer: 2025-01-24 22:57:11
original
675 Les gens l'ont consulté

How to Map Nested JSON Properties to Simple C# Properties?

l'attribut simple qui mappe le sous-attribut JSON à l'objet C #

Introduction

Créer un comportement sur séquentiel sur le dos personnalisé dans newtonsoft.json peut être réalisé par des attributs et des convertisseurs personnalisés. Cela vous permet de cartographier les sous-attributs de l'objet JSON aux attributs simples de la classe C #, même s'ils n'ont pas l'objet correspondant.

Utilisez la méthode auxiliaire

Si vous n'avez besoin que d'un attribut supplémentaire, une méthode simple consiste à résoudre votre JSON en tant que travail, remplissez votre classe avec ToObject (), puis utilisez SelectToken () pour extraire les attributs supplémentaires. Par exemple:

Créer un JSONConverter personnalisé

string json = @"
{
    ""name"" : ""Joe Shmoe"",
    ""age"" : 26,
    ""picture"":
    {
        ""id"": 123456,
        ""data"":
        {
            ""type"": ""jpg"",
            ""url"": ""http://www.someplace.com/mypicture.jpg""
        }
    }
}";

JObject jo = JObject.Parse(json);
Person p = jo.ToObject<Person>();
p.ProfilePicture = (string)jo.SelectToken("picture.data.url");
Copier après la connexion

Pour des solutions plus compliquées, vous pouvez créer un converteur JSON personnalisé qui utilise la technologie ci-dessus pour traiter tous les attributs marqués d'attributs JSONProperty. JSONConver peut utiliser la réflexion pour trouver des attributs, les mapper sur le chemin JSON correct et remplir les attributs en conséquence.

<联> Le convertisseur personnalisé associé

class JsonPathConverter : JsonConverter
{
    // ReadJson 实现在此处...
}
Copier après la connexion
Utilisez la propriété [JSONConverter] pour associer le convertisseur en classe cible. Vous pouvez ensuite appliquer la propriété [JSONProperty] aux attributs requis et spécifier le chemin JSON comme nom d'attribut.

Après avoir utilisé ces attributs, vous pouvez dériver JSON comme d'habitude et le mappage se produira automatiquement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal