VB.NET

Guide : Désérialiser un Tableau JSON avec Newtonsoft.Json en VB.Net

Newtonsoft.Json (ou Json.NET) est une bibliothèque populaire pour la manipulation de JSON en .NET. Elle permet de sérialiser et désérialiser des données JSON en objets VB.Net et inversement.

Ce guide montre comment désérialiser un tableau JSON en un tableau ou une liste d’objets en VB.Net.


1. Installation de Newtonsoft.Json

Avant de commencer, assurez-vous d’avoir installé la bibliothèque Newtonsoft.Json via NuGet :

  1. Ouvrez votre projet VB.Net dans Visual Studio.
  2. Allez dans ToolsNuGet Package ManagerManage NuGet Packages for Solution.
  3. Recherchez Newtonsoft.Json et installez-le dans votre projet.

2. Structure JSON d’Exemple

Voici un exemple de tableau JSON que nous allons désérialiser en VB.Net :

[
  { "Nom": "Jean", "Age": 30 },
  { "Nom": "Marie", "Age": 25 },
  { "Nom": "Paul", "Age": 40 }
]

Ce tableau JSON contient une liste d’objets avec deux propriétés : Nom et Age.


3. Définir une Classe Correspondante

Pour désérialiser le tableau JSON, vous devez définir une classe qui correspond à la structure de vos objets JSON.

Exemple :

Public Class Personne
    Public Property Nom As String
    Public Property Age As Integer
End Class

4. Désérialisation en Tableau ou Liste

Vous pouvez désérialiser le tableau JSON en un tableau ou une liste d’objets en utilisant JsonConvert.DeserializeObject.

Exemple : Désérialiser en Liste

Imports Newtonsoft.Json

Module Module1
    Sub Main()
        ' Exemple de chaîne JSON
        Dim json As String = "[{""Nom"":""Jean"",""Age"":30},{""Nom"":""Marie"",""Age"":25},{""Nom"":""Paul"",""Age"":40}]"

        ' Désérialiser en une liste de Personne
        Dim personnes As List(Of Personne) = JsonConvert.DeserializeObject(Of List(Of Personne))(json)

        ' Parcourir et afficher les données
        For Each personne As Personne In personnes
            Console.WriteLine($"Nom : {personne.Nom}, Âge : {personne.Age}")
        Next
    End Sub
End Module

Exemple : Désérialiser en Tableau

Imports Newtonsoft.Json

Module Module1
    Sub Main()
        ' Exemple de chaîne JSON
        Dim json As String = "[{""Nom"":""Jean"",""Age"":30},{""Nom"":""Marie"",""Age"":25},{""Nom"":""Paul"",""Age"":40}]"

        ' Désérialiser en un tableau de Personne
        Dim personnes() As Personne = JsonConvert.DeserializeObject(Of Personne())(json)

        ' Parcourir et afficher les données
        For Each personne As Personne In personnes
            Console.WriteLine($"Nom : {personne.Nom}, Âge : {personne.Age}")
        Next
    End Sub
End Module

5. Points Clés de Désérialisation

  1. Structure Correspondante : La classe VB.Net doit correspondre exactement aux propriétés du JSON (y compris la casse).
  2. Types de Données : Assurez-vous que les types de données dans la classe correspondent aux types JSON (exemple : Integer pour un nombre, String pour du texte).

6. Exemple avec un Fichier JSON

Si vous avez un fichier JSON au lieu d’une chaîne JSON, utilisez File.ReadAllText pour lire le contenu du fichier, puis désérialisez-le.

Exemple :

Imports Newtonsoft.Json
Imports System.IO

Module Module1
    Sub Main()
        ' Lire le contenu d'un fichier JSON
        Dim json As String = File.ReadAllText("personnes.json")

        ' Désérialiser en une liste de Personne
        Dim personnes As List(Of Personne) = JsonConvert.DeserializeObject(Of List(Of Personne))(json)

        ' Parcourir et afficher les données
        For Each personne As Personne In personnes
            Console.WriteLine($"Nom : {personne.Nom}, Âge : {personne.Age}")
        Next
    End Sub
End Module

7. Gérer les Erreurs de Désérialisation

Utilisez Try...Catch pour gérer les erreurs potentielles pendant la désérialisation, comme un JSON mal formé ou un problème de correspondance de type.

Exemple :

Imports Newtonsoft.Json

Module Module1
    Sub Main()
        Try
            ' Exemple de chaîne JSON
            Dim json As String = "[{""Nom"":""Jean"",""Age"":30},{""Nom"":""Marie"",""Age"":""25 ans""}]"

            ' Désérialiser en une liste de Personne
            Dim personnes As List(Of Personne) = JsonConvert.DeserializeObject(Of List(Of Personne))(json)

            ' Parcourir et afficher les données
            For Each personne As Personne In personnes
                Console.WriteLine($"Nom : {personne.Nom}, Âge : {personne.Age}")
            Next
        Catch ex As Exception
            Console.WriteLine($"Erreur lors de la désérialisation : {ex.Message}")
        End Try
    End Sub
End Module

8. Exemple Avancé : JSON avec Niveaux Imbriqués

Si le JSON contient des niveaux imbriqués, définissez des classes imbriquées.

JSON Exemple :

[
  { "Nom": "Jean", "Age": 30, "Adresse": { "Rue": "Rue A", "Ville": "Paris" } },
  { "Nom": "Marie", "Age": 25, "Adresse": { "Rue": "Rue B", "Ville": "Lyon" } }
]

Classes Correspondantes :

Public Class Adresse
    Public Property Rue As String
    Public Property Ville As String
End Class

Public Class Personne
    Public Property Nom As String
    Public Property Age As Integer
    Public Property Adresse As Adresse
End Class

Désérialisation :

Imports Newtonsoft.Json

Module Module1
    Sub Main()
        ' Exemple de chaîne JSON
        Dim json As String = "[{""Nom"":""Jean"",""Age"":30,""Adresse"":{""Rue"":""Rue A"",""Ville"":""Paris""}},{""Nom"":""Marie"",""Age"":25,""Adresse"":{""Rue"":""Rue B"",""Ville"":""Lyon""}}]"

        ' Désérialiser en une liste de Personne
        Dim personnes As List(Of Personne) = JsonConvert.DeserializeObject(Of List(Of Personne))(json)

        ' Afficher les données
        For Each personne As Personne In personnes
            Console.WriteLine($"Nom : {personne.Nom}, Âge : {personne.Age}, Ville : {personne.Adresse.Ville}")
        Next
    End Sub
End Module

Résumé

  1. Installez Newtonsoft.Json via NuGet.
  2. Définissez des classes correspondant à la structure JSON.
  3. Utilisez JsonConvert.DeserializeObject pour convertir le JSON en tableau ou liste.
  4. Gérer les erreurs avec Try...Catch.

Guide : Trier un Tableau en VB.Net

Trier un tableau en VB.Net consiste à organiser ses éléments dans un ordre spécifique, tel que croissant, décroissant ou selon une condition particulière. VB.Net fournit des outils puissants pour accomplir cela, notamment avec la classe Array.


1. Trier un Tableau de Base

Méthode : Array.Sort

La méthode Array.Sort trie les éléments d’un tableau en ordre croissant par défaut.

Exemple : Trier des nombres croissants

Dim nombres() As Integer = {5, 3, 8, 1, 9}
Array.Sort(nombres)

For Each n As Integer In nombres
    Console.WriteLine(n)
Next

Résultat :

1
3
5
8
9

Exemple : Trier des chaînes (ordre alphabétique)

Dim fruits() As String = {"Banane", "Pomme", "Orange", "Cerise"}
Array.Sort(fruits)

For Each fruit As String In fruits
    Console.WriteLine(fruit)
Next

Résultat :

Banane
Cerise
Orange
Pomme

2. Trier un Tableau en Ordre Décroissant

Pour trier un tableau en ordre décroissant, utilisez la méthode Array.Sort suivie de Array.Reverse.

Exemple :

Dim nombres() As Integer = {5, 3, 8, 1, 9}
Array.Sort(nombres)
Array.Reverse(nombres)

For Each n As Integer In nombres
    Console.WriteLine(n)
Next

Résultat :

9
8
5
3
1

3. Trier un Tableau d’Objets

Pour trier un tableau d’objets, utilisez Array.Sort avec une fonction de comparaison personnalisée ou une expression Lambda.

Exemple : Trier un tableau de classes

Classe Personne :

Public Class Personne
    Public Property Nom As String
    Public Property Age As Integer
End Class

Code pour trier par âge :

Dim personnes() As Personne = {
    New Personne With {.Nom = "Jean", .Age = 30},
    New Personne With {.Nom = "Marie", .Age = 25},
    New Personne With {.Nom = "Paul", .Age = 40}
}

Array.Sort(personnes, Function(p1, p2) p1.Age.CompareTo(p2.Age))

For Each personne As Personne In personnes
    Console.WriteLine($"Nom : {personne.Nom}, Âge : {personne.Age}")
Next

Résultat :

Nom : Marie, Âge : 25
Nom : Jean, Âge : 30
Nom : Paul, Âge : 40

4. Trier avec LINQ

LINQ (Language Integrated Query) offre une manière plus expressive de trier des tableaux.

Exemple : Trier des nombres

Imports System.Linq

Dim nombres() As Integer = {5, 3, 8, 1, 9}
Dim nombresTries = nombres.OrderBy(Function(n) n).ToArray()

For Each n As Integer In nombresTries
    Console.WriteLine(n)
Next

Exemple : Trier des objets

Imports System.Linq

Dim personnes() As Personne = {
    New Personne With {.Nom = "Jean", .Age = 30},
    New Personne With {.Nom = "Marie", .Age = 25},
    New Personne With {.Nom = "Paul", .Age = 40}
}

Dim personnesTries = personnes.OrderBy(Function(p) p.Age).ToArray()

For Each personne As Personne In personnesTries
    Console.WriteLine($"Nom : {personne.Nom}, Âge : {personne.Age}")
Next

5. Trier Partiellement un Tableau

Pour trier une partie spécifique d’un tableau, utilisez la méthode surchargée de Array.Sort.

Exemple : Trier une portion d’un tableau

Dim nombres() As Integer = {5, 3, 8, 1, 9}
Array.Sort(nombres, 1, 3) ' Trie uniquement les éléments de l’index 1 à 3

For Each n As Integer In nombres
    Console.WriteLine(n)
Next

Résultat :

5
1
3
8
9

6. Trier avec Une Fonction Personnalisée

Si vous souhaitez trier selon une logique complexe, utilisez IComparer ou une fonction de comparaison.

Exemple : Trier par longueur de chaîne

Dim fruits() As String = {"Banane", "Pomme", "Orange", "Cerise"}
Array.Sort(fruits, Function(x, y) x.Length.CompareTo(y.Length))

For Each fruit As String In fruits
    Console.WriteLine(fruit)
Next

Résultat :

Pomme
Cerise
Banane
Orange

7. Avantages et Limites

Avantages :

  • Flexibilité : Array.Sort et LINQ permettent de trier selon différentes logiques.
  • Performance : Tri rapide et optimisé pour des tableaux de grande taille.

Limites :

  • Immuabilité : Array.Sort modifie le tableau original. Pour conserver le tableau d’origine, utilisez LINQ pour retourner un tableau trié.

8. Exemple Complet : Trier Différents Types de Tableaux

Voici un programme complet qui montre différents types de tris.

Module Module1
    Sub Main()
        ' Trier un tableau d’entiers
        Dim nombres() As Integer = {5, 3, 8, 1, 9}
        Array.Sort(nombres)
        Console.WriteLine("Nombres triés croissants : " & String.Join(", ", nombres))

        ' Trier un tableau de chaînes
        Dim fruits() As String = {"Banane", "Pomme", "Orange", "Cerise"}
        Array.Sort(fruits)
        Console.WriteLine("Fruits triés alphabétiquement : " & String.Join(", ", fruits))

        ' Trier un tableau d’objets
        Dim personnes() As Personne = {
            New Personne With {.Nom = "Jean", .Age = 30},
            New Personne With {.Nom = "Marie", .Age = 25},
            New Personne With {.Nom = "Paul", .Age = 40}
        }
        Array.Sort(personnes, Function(p1, p2) p1.Age.CompareTo(p2.Age))
        Console.WriteLine("Personnes triées par âge :")
        For Each personne As Personne In personnes
            Console.WriteLine($"Nom : {personne.Nom}, Âge : {personne.Age}")
        Next

        Console.ReadLine()
    End Sub

    Public Class Personne
        Public Property Nom As String
        Public Property Age As Integer
    End Class
End Module

Résumé

MéthodeDescription
Array.SortTrie un tableau en ordre croissant.
Array.ReverseInverse l’ordre des éléments après un tri.
LINQ OrderByTrie en retournant une nouvelle version du tableau.
Array.Sort avec ComparaisonPermet un tri personnalisé basé sur une logique définie.

Autres articles

Guide : Trier un Tableau en VB.Net
Trier un tableau en VB.Net consiste à organiser ses éléments...
Read more
Guide : Tableaux d’Objets en VB.Net
Un tableau d’objets en VB.Net est une structure de données...
Read more
Guide : Créer et Manipuler une Liste...
En VB.Net, une liste est une collection dynamique qui permet...
Read more
Guide : Manipulation des Tableaux de Chaînes...
Un tableau de chaînes en VB.Net est une collection ordonnée...
Read more
Série d'Exercices Corrigés sur VB.Net
Voici une série d'exercices corrigés sur VB.Net. Ils couvrent différents...
Read more
Guide pratique : Déclaration d’un objet en...
La déclaration d’un objet en VB.NET est une tâche fondamentale...
Read more
AZ

Share
Published by
AZ

Recent Posts

Présentation d’Entreprise : Définition, Élaboration et Stratégies pour un Impact Optimal

Télécharger un canevas Word Présentation d’Entreprise ⬇︎ 1. Définition : Qu’est-ce qu’une Présentation d’Entreprise ?…

4 heures ago

Dossier Professionnel : Définition, Rôle et Structure selon les Formats

Le dossier professionnel est un document essentiel pour structurer et valoriser un parcours professionnel. Il…

4 heures ago

Rédaction d’une Présentation de Dossier : Canevas Word

Une présentation de dossier est un document structuré qui permet d’exposer de manière claire et…

5 heures ago

Exercices sur la Syntaxe : Coordination, Subordination, Juxtaposition, Inversion Sujet-Verbe, Mise en Relief (c’est… qui/que) – Avec Corrigés

Maîtriser la Syntaxe en Français La syntaxe est l'un des piliers fondamentaux de la langue…

5 heures ago

Modèle de Proposition de Valeur : Définition et Guide de Rédaction

Dans le marché compétitif d'aujourd'hui, une proposition de valeur pertinente est primordiale pour distinguer une…

6 heures ago

Modèle Word Structuré de Présentation des Propositions d’Amendements

Lors de l’élaboration ou de la révision d’un texte législatif, réglementaire ou statutaire, les propositions…

7 heures ago