Maison > développement back-end > C++ > Comment analyser des données JSON imbriquées dans des objets C# à l'aide de Json.NET ?

Comment analyser des données JSON imbriquées dans des objets C# à l'aide de Json.NET ?

Mary-Kate Olsen
Libérer: 2025-01-24 15:02:09
original
723 Les gens l'ont consulté

How to Parse Nested JSON Data into C# Objects using Json.NET?

Utilisez Json.NET pour analyser JSON

Json.NET est une bibliothèque populaire pour traiter les données JSON dans l'environnement .NET. Il fournit un moyen pratique d'analyser et de sérialiser des chaînes JSON en objets C#.

Utiliser des objets pour analyser JSON

Pour analyser JSON dans un objet, vous pouvez utiliser la méthode JsonConvert.DeserializeObject<T> où T est le type d'objet que vous souhaitez créer. Pour le JSON fourni, vous pouvez créer la classe suivante :

<code class="language-csharp">public class DisplayFieldName
{
    public string OBJECT_NAME { get; set; }
}

public class NameTypePair
{
    public string Name { get; set; }
    public string Type { get; set; }
}

public class FieldAliases
{
    public NameTypePair OBJECT_NAME { get; set; }
    public NameTypePair OBJECT_TYPE { get; set; }
}

public class PositionType
{
    public string Type { get; set; }
}

public class Reference
{
    public int Id { get; set; }
}

public class Attributes
{
    public string OBJECT_NAME { get; set; }
    public string OBJECT_TYPE { get; set; }
}

public class Position
{
    public int X { get; set; }
    public int Y { get; set; }
}

public class ObjectItem
{
    public Attributes Attributes { get; set; }
    public Position Position { get; set; }
}

public class Foo
{
    public DisplayFieldName DisplayFieldName { get; set; }
    public FieldAliases FieldAliases { get; set; }
    public PositionType PositionType { get; set; }
    public Reference Reference { get; set; }
    public List<ObjectItem> Objects { get; set; }
}</code>
Copier après la connexion

Après avoir créé ces classes, vous pouvez analyser le JSON dans un objet Foo :

<code class="language-csharp">string json = @"{
    ""displayFieldName"" : ""OBJECT_NAME"", 
    ""fieldAliases"" : {
        ""OBJECT_NAME"" : ""OBJECT_NAME"", 
        ""OBJECT_TYPE"" : ""OBJECT_TYPE""
    }, 
    ""positionType"" : ""point"", 
    ""reference"" : {
        ""id"" : 1111
    }, 
    ""objects"" : [
        {
            ""attributes"" : {
                ""OBJECT_NAME"" : ""test name"", 
                ""OBJECT_TYPE"" : ""test type""
            }, 
            ""position"" : {
                ""x"" : 5, 
                ""y"" : 7
            }
        }
    ]
}";

Foo foo = JsonConvert.DeserializeObject<Foo>(json);</code>
Copier après la connexion

Accéder aux propriétés imbriquées

Pour accéder aux données d'un objet Foo, vous pouvez utiliser des propriétés et des indexeurs. Par exemple, pour obtenir la valeur "nom du test" du tableau d'objets, vous utiliserez :

<code class="language-csharp">
string name = foo.Objects[0].Attributes.OBJECT_NAME;
```  代码中对`NameTypePair`类进行了修改,使其更符合实际情况,并更正了`Objects`列表的类型为`ObjectItem`。  这使得代码更清晰,也更易于理解和维护。</code>
Copier après la connexion

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!

source:php.cn
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