Per recuperare e gestire le risposte JSON dell'API Tmdb.
Per i filmati più popolari in un'applicazione Android, è necessario creare
classi di dati che corrispondano alla struttura della risposta JSON.
Torniamo alla risposta dell'API.
Abbiamo fornito la chiave API e l'endpoint come popolare.
Riceviamo questa risposta.
Abbiamo una risposta JSON e all'interno di questo oggetto JSON abbiamo coppie chiave-valore.
La prima chiave è pagina e il valore è uno.
La seconda chiave è il risultato e il valore di un array.
E all'interno di questo array abbiamo altri oggetti JSON.
Questo è il primo film, questo è il secondo e così via.
Se si scorre verso il basso, si può notare che l'array JSON è terminato.
Qui abbiamo.
La terza chiave è il totale delle pagine e il valore è questo numero.
La quarta chiave è il risultato totale.
Il risultato è e il valore è questo numero.
Quindi nella risposta JSON abbiamo quattro chiavi e quattro valori.
Se usiamo JSON formatter.org/json pretty print, e si possono usare
altri siti web che permettono di abbellire la risposta JSON.
Si può notare che questo è il codice del risultato.
Abbiamo un oggetto JSON.
Abbiamo queste chiavi e questi valori.
Questo è il risultato.
Il valore del risultato è un array.
Quindi la risposta principale.
La risposta principale di Tmdb org è un oggetto JSON contenente quattro chiavi e quattro valori.
I valori sono intero, JSON, array, intero e intero.
Per questo, vorrei iniziare con la risposta esterna.
Abbiamo una risposta e una risposta interiore.
Abbiamo bisogno di recuperare più tardi.
Quindi creeremo due classi di dati, perché si tratta di una risposta annidata.
Questa è la risposta principale e questa è la risposta interiore.
Oggetti JSON di tipo film.
Ok, questo è l'elenco dei film inclusi nei risultati.
Chiave.
Per farlo, dobbiamo creare un nuovo pacchetto, che chiameremo retrofit.
E all'interno di questo retrofit creerò una nuova classe Kotlin Data.
Nominarlo come Risposta al film.
Torniamo alla risposta.
Abbiamo quattro chiavi e quattro valori, tre dei quali di
tipo intero e uno di tipo elenco di oggetti JSON.
È necessario creare quattro campi.
Il primo è composto da pagine, quindi da pagine di valore.
È di tipo int val results.
È di tipo.
Elenco delle classi di film In seguito creeremo il totale delle pagine.
Copiatelo e incollatelo.
È di tipo int e l'ultimo è val.
Il risultato totale è di tipo intero.
Copiare sempre lo stesso nome delle chiavi nella risposta JSON.
Poiché è sensibile alle maiuscole, non posso creare un risultato.
Ad esempio, perché il risultato è diverso dai risultati nei risultati e nella risposta JSON.
Quindi fate sempre i risultati qui.
Analogamente, creare sempre i campi, i campi dati simili a quelli della risposta JSON.
Ok.
Per recuperare le chiavi in una posizione e in un formato corretti.
Inoltre, se non è necessario scrivere, ad esempio, lo stesso nome della risposta JSON.
Quindi, se voglio creare un totale di pagine non con il trattino basso, posso creare un totale di pagine come questo.
Per ora non posso usare il totale delle pagine in questo formato
per recuperare il totale delle pagine con underscore, perché è diverso da
questo, ma posso usare un'annotazione fornita da retrofit chiamata nome serializzato.
E qui devo specificare la chiave, la chiave corretta all'interno della risposta JSON.
Quindi copiate questo e incollatelo qui.
L'annotazione del nome serializzato fa parte della libreria JSON, utilizzata
per la serializzazione e la deserializzazione di JSON in Android.
Specifica il nome del campo nella risposta JSON che deve
essere mappato al campo annotato nella classe di dati.
Questo è particolarmente utile quando i nomi dei campi JSON non corrispondono ai nomi
dei campi Java o Kotlin, o quando contengono caratteri non validi in Java.
Nomi dei campi Kotlin.
Ok, se si vuole usare il totale delle pagine, si può scrivere in questo modo.
Per ottenere e collegare e mappare le pagine totali con quelle della risposta JSON.
Ok, quindi sto collegando questo totale di pagine a questo totale di pagine di sottolineatura nella risposta JSON.
Ok.
Questa è la nostra classe di dati.
E c'è una nota che definisce il campo dei risultati.
Elenco dei film.
Indica che il campo dei risultati è un elenco di oggetti filmati.
Se torniamo alla risposta, notiamo che si tratta di un array di oggetti JSON.
Questi oggetti JSON sono di tipo film che creeremo nel prossimo video.
Ok, ogni oggetto JSON è un film e questi film sono inclusi in
questo array che indica che si tratta di un elenco di film.