Afficher un fichier Json dans un Datagridview
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:
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:
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. :)