Tout d'abord bonjour à tous,

je me heurte depuis peu à un nouveau type de fichier (pour moi), le format Json.
J'ai besoin de lire un fichier Json qu'on me fournit et de l'afficher dans un Datagridview pour pouvoir par la suite rajouter des lignes à ce fichier et le sauvegarder.

Je débute dans le monde de la programmation et je me suis tourné vers ce langage il y a peu mais je suis assez vite perdu. D'autant plus quand il s'agit de ce format que je ne connais que très peu.
J'avais déjà par le passé déjà fait ce principe mais avec un un fichier xml et cela sans problème, j'aimerais utiliser ce même système si possible.

En cherchant un peu, ce qui revient le plus souvent c'est la librairie "Newtonsoft.Json" que j'ai tenté d'utiliser mais en vain.
J'ai trouvé sur le net une partie de code qui fait le job mais lorsque j'essaye de l'adapter au fichier que j'ai, je déchante un peu avec les systèmes de dé sérialisation etc... c'est pourquoi je demande votre aide sur ce problème.

Voici la structure du fichier que je reçois.

Code Json : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
[
    {
        "name":"losc",
        "logo":"Assets/TEXTURES/LOSC.png",
        "players":[
            {
                "first_name":"Édison",
                "last_name":"Cavani",
                "avatar":"Assets/TEXTURES/cavani.png"
            },
            {
                "first_name":"Némar",
                "last_name":"Jùnior",
                "avatar":"Assets/TEXTURES/cavani.png"
            }
        ]
    },
    {
        "name":"chelsea",
        "logo":"Assets/TEXTURES/chelsea.png",
        "players":[
            {
                "first_name":"Édison",
                "last_name":"Cavani",
                "avatar":"Assets/TEXTURES/cavani.png"
            },
            {
                "first_name":"Arsène",
                "last_name":"Wenger",
                "avatar":"Assets/TEXTURES/ArseneWenger.png"
            }
        ]
    },
    {
        "name":"bruges",
        "logo":"Assets/TEXTURES/bruges.png",
        "players":[
            {
                "first_name":"Arsène",
                "last_name":"Wenger",
                "avatar":"Assets/TEXTURES/ArseneWenger.png"
            }
        ]
    }
]


Voici un début de code trouvé sur internet que j'ai tenté de modifier.

Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Imports Newtonsoft.Json
 
 
Public Class Form1
    Dim file As System.IO.StreamWriter
    Dim FileName As String = "C:\Users\temp\Downloads\teams.json"
    Dim content As String = IO.File.ReadAllText(FileName)
    Public Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
 
        DataGridView1.AutoGenerateColumns = False
        Dim results As RootObject = JsonConvert.DeserializeObject(content, GetType(RootObject))
        Dim dataResults = results.players.players.Select(Function(data) New Result With {.first_name = data.first_name, .last_name = data.last_name, .avatar = data.avatar}).ToList
        DataGridView1.DataSource = dataResults
    End Sub
 
    Public Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        IO.File.WriteAllText(FileName, JsonConvert.SerializeObject(content))
 
    End Sub
End Class
Public Class Result
 
    Public Property first_name() As String
    Public Property last_name() As String
    Public Property avatar() As String
End Class
Public Class teams
    Public Property players() As List(Of Result)
End Class
Public Class RootObject
    Public Property players() As teams
End Class

Le bouton 1 pour l'instant me permet de sauvegarder le contenu du Datagridview un peu dans le désordre. Par la suite, j'aimerais une fois la "Form" chargée, afficher le contenu du Json sur différent Datagridview rangé par "Tabcontrol". Un "Tabcontrol" correspondant à une catégorie "name" du fichier Json pour répertorier tous les joueurs d'une équipe par "Tabcontrol".
Est-ce que je suis sur la bonne voie ou je me trompe totalement de méthode?

Toutes réponses et bonne à prendre et me fera avancer, je vous en remercie donc d'avance.