Bonjour,
Souhaitant développer une application en rapport avec le cinéma, j'essaye d'utiliser l'API de The Movie DataBase (TMDB).
J'arrive à interroger et afficher la réponse sous forme de JSON, mais c'est après que cela se complique. Je ne parviens pas à récupérer les informations parsées.
J'ai essayé de commencer simple en utilisant "Bienvenue chez les ch'tis" qui ne retourne qu'un seul résultat (!).
Voici le code utilisé, en utilisant NewtonSoft JSON .NET :
en ayant créé les classes suivantes :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Dim Request As HttpWebRequest Dim Response As HttpWebResponse Dim sReader As StreamReader Request = DirectCast(WebRequest.Create("https://api.themoviedb.org/3/search/movie?api_key=#CLE_API#&query=bienvenue+chez+les+ch%27tis&language=fr-fr"), HttpWebRequest) Response = DirectCast(Request.GetResponse(), HttpWebResponse) sReader = New StreamReader(Response.GetResponseStream()) Dim infos As String = Nothing infos = sReader.ReadToEnd() Dim film As Result = New Result film = JsonConvert.DeserializeObject(Of Result)(infos) TextBox1.Text = film.Title
Et enfin, voici le code JSON retourné par le site de TMDB :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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61 Public Class Result <JsonProperty("vote_count")> Public Property VoteCount As Integer <JsonProperty("id")> Public Property Id As Integer <JsonProperty("video")> Public Property Video As Boolean <JsonProperty("vote_average")> Public Property VoteAverage As Double <JsonProperty("title")> Public Property Title As String <JsonProperty("popularity")> Public Property Popularity As Double <JsonProperty("poster_path")> Public Property PosterPath As String <JsonProperty("original_language")> Public Property OriginalLanguage As String <JsonProperty("original_title")> Public Property OriginalTitle As String <JsonProperty("genre_ids")> Public Property GenreIds As Integer() <JsonProperty("backdrop_path")> Public Property BackdropPath As String <JsonProperty("adult")> Public Property Adult As Boolean <JsonProperty("overview")> Public Property Overview As String <JsonProperty("release_date")> Public Property ReleaseDate As String End Class Public Class Example <JsonProperty("page")> Public Property Page As Integer <JsonProperty("total_results")> Public Property TotalResults As Integer <JsonProperty("total_pages")> Public Property TotalPages As Integer <JsonProperty("results")> Public Property Results As Result() End Class
ou en plus clair :Code:{"page":1,"total_results":1,"total_pages":1,"results":[{"vote_count":1404,"id":8265,"video":false,"vote_average":6.7,"title":"Bienvenue chez les Ch'tis","popularity":9.487,"poster_path":"\/hIOlAnhYro2uHDQTdtkfwIs9fly.jpg","original_language":"fr","original_title":"Bienvenue chez les ch'tis","genre_ids":[35],"backdrop_path":"\/o2FFyK2lFk9VyumyNwG0bUk2CeR.jpg","adult":false,"overview":"Philippe Abrams est directeur de la poste de Salon-de-Provence. Il est marié à Julie, dont le caractère dépressif lui rend la vie impossible. Pour lui faire plaisir, Philippe fraude afin d'obtenir une mutation sur la Côte d'Azur. Mais il est démasqué: il sera muté à Bergues, petite ville du Nord. Pour les Abrams, sudistes pleins de préjugés, le Nord c'est l'horreur, une région glacée, peuplée d'êtres rustres, éructant un langage incompréhensible, le \"cheutimi\". Philippe ira seul. À sa grande surprise, il découvre un endroit charmant, une équipe chaleureuse, des gens accueillants, et se fait un ami : Antoine, le facteur et le carillonneur du village, à la mère possessive et aux amours contrariées. Quand Philippe revient à Salon, Julie refuse de croire qu'il se plait dans le Nord. Elle pense même qu'il lui ment pour la ménager. Pour la satisfaire et se simplifier la vie, Philippe lui fait croire qu'en effet, il vit un enfer à Bergues.","release_date":"2008-01-09"}]}
Pièce jointe 490707
En ayant suivi des exemples, et passé des heures à chercher sur le net, j'ai finis par utilisé le NuGet : Newtonsoft.json qui semblait prometteur ... et puis en fait non, je ne parviens toujours pas à ne serait-ce qu'afficher le titre dans un textbox.
Pourriez-vous svp m'aider sur ce point, quitte à me proposer une méthode complétement différente. Je n'en peux plus de ne pas avancer à cause de l'impossibilité de traiter les infos recueillies en JSON.
En mettant le contenu de "infos" dans un textbox, tout le contenu du JSON s’affiche correctement. Donc le problème vient bel et bien de la déserialization de ce dernier format.
Merci d'avance pour votre aide.
Cordialement-