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.
Avant de commencer, assurez-vous d’avoir installé la bibliothèque Newtonsoft.Json via NuGet :
Newtonsoft.Json
et installez-le dans votre projet.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
.
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
Vous pouvez désérialiser le tableau JSON en un tableau ou une liste d’objets en utilisant JsonConvert.DeserializeObject
.
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
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
Integer
pour un nombre, String
pour du texte).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
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
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
JsonConvert.DeserializeObject
pour convertir le JSON en tableau ou liste.Try...Catch
.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
.
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
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
Pour trier un tableau d’objets, utilisez Array.Sort
avec une fonction de comparaison personnalisée ou une expression Lambda.
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
LINQ (Language Integrated Query) offre une manière plus expressive de trier des tableaux.
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
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
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
Si vous souhaitez trier selon une logique complexe, utilisez IComparer
ou une fonction de comparaison.
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
Array.Sort
et LINQ permettent de trier selon différentes logiques.Array.Sort
modifie le tableau original. Pour conserver le tableau d’origine, utilisez LINQ pour retourner un tableau trié.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
Méthode | Description |
---|---|
Array.Sort | Trie un tableau en ordre croissant. |
Array.Reverse | Inverse l’ordre des éléments après un tri. |
LINQ OrderBy | Trie en retournant une nouvelle version du tableau. |
Array.Sort avec Comparaison | Permet un tri personnalisé basé sur une logique définie. |
Télécharger un canevas Word Présentation d’Entreprise ⬇︎ 1. Définition : Qu’est-ce qu’une Présentation d’Entreprise ?…
Le dossier professionnel est un document essentiel pour structurer et valoriser un parcours professionnel. Il…
Une présentation de dossier est un document structuré qui permet d’exposer de manière claire et…
Maîtriser la Syntaxe en Français La syntaxe est l'un des piliers fondamentaux de la langue…
Dans le marché compétitif d'aujourd'hui, une proposition de valeur pertinente est primordiale pour distinguer une…
Lors de l’élaboration ou de la révision d’un texte législatif, réglementaire ou statutaire, les propositions…
This website uses cookies.