WEBVTT

1
00:00.800 --> 00:05.540
Per recuperare e gestire le risposte JSON
dell'API Tmdb.

2
00:05.570 --> 00:14.090
Per i filmati più popolari in
un'applicazione Android, è necessario
creare

3
00:14.090 --> 00:15.500
classi di dati che corrispondano alla
struttura della risposta JSON.

4
00:15.500 --> 00:17.840
Torniamo alla risposta dell'API.

5
00:17.840 --> 00:22.370
Abbiamo fornito la chiave API e l'endpoint
come popolare.

6
00:22.370 --> 00:23.930
Riceviamo questa risposta.

7
00:23.930 --> 00:29.810
Abbiamo una risposta JSON e all'interno di
questo oggetto JSON abbiamo coppie
chiave-valore.

8
00:29.810 --> 00:32.960
La prima chiave è pagina e il valore è
uno.

9
00:32.990 --> 00:37.730
La seconda chiave è il risultato e il
valore di un array.

10
00:37.730 --> 00:42.020
E all'interno di questo array abbiamo
altri oggetti JSON.

11
00:42.020 --> 00:46.340
Questo è il primo film, questo è il
secondo e così via.

12
00:46.340 --> 00:52.250
Se si scorre verso il basso, si può notare
che l'array JSON è terminato.

13
00:52.250 --> 00:53.510
Qui abbiamo.

14
00:53.510 --> 00:57.950
La terza chiave è il totale delle pagine e
il valore è questo numero.

15
00:57.950 --> 01:00.260
La quarta chiave è il risultato totale.

16
01:00.260 --> 01:04.610
Il risultato è e il valore è questo
numero.

17
01:04.610 --> 01:11.410
Quindi nella risposta JSON abbiamo quattro
chiavi e quattro valori.

18
01:11.410 --> 01:21.130
Se usiamo JSON formatter.org/json pretty
print, e si possono usare

19
01:21.130 --> 01:24.130
altri siti web che permettono di abbellire
la risposta JSON.

20
01:24.130 --> 01:28.120
Si può notare che questo è il codice del
risultato.

21
01:28.120 --> 01:30.250
Abbiamo un oggetto JSON.

22
01:30.250 --> 01:33.220
Abbiamo queste chiavi e questi valori.

23
01:33.220 --> 01:34.420
Questo è il risultato.

24
01:34.420 --> 01:37.570
Il valore del risultato è un array.

25
01:37.570 --> 01:39.760
Quindi la risposta principale.

26
01:39.760 --> 01:49.570
La risposta principale di Tmdb org è un
oggetto JSON contenente quattro chiavi e
quattro valori.

27
01:49.570 --> 01:55.150
I valori sono intero, JSON, array, intero
e intero.

28
01:55.150 --> 01:59.590
Per questo, vorrei iniziare con la
risposta esterna.

29
01:59.590 --> 02:03.730
Abbiamo una risposta e una risposta
interiore.

30
02:03.730 --> 02:05.410
Abbiamo bisogno di recuperare più tardi.

31
02:05.410 --> 02:11.350
Quindi creeremo due classi di dati, perché
si tratta di una risposta annidata.

32
02:11.350 --> 02:15.460
Questa è la risposta principale e questa è
la risposta interiore.

33
02:15.490 --> 02:18.160
Oggetti JSON di tipo film.

34
02:18.190 --> 02:22.900
Ok, questo è l'elenco dei film inclusi nei
risultati.

35
02:22.930 --> 02:23.410
Chiave.

36
02:23.440 --> 02:31.180
Per farlo, dobbiamo creare un nuovo
pacchetto, che chiameremo retrofit.

37
02:31.180 --> 02:36.340
E all'interno di questo retrofit creerò
una nuova classe Kotlin Data.

38
02:36.340 --> 02:39.460
Nominarlo come Risposta al film.

39
02:42.880 --> 02:44.290
Torniamo alla risposta.

40
02:44.290 --> 02:52.690
Abbiamo quattro chiavi e quattro valori,
tre dei quali di

41
02:52.720 --> 02:54.580
tipo intero e uno di tipo elenco di
oggetti JSON.

42
02:54.580 --> 02:57.190
È necessario creare quattro campi.

43
02:57.190 --> 03:01.210
Il primo è composto da pagine, quindi da
pagine di valore.

44
03:01.240 --> 03:04.660
È di tipo int val results.

45
03:04.660 --> 03:05.740
È di tipo.

46
03:05.740 --> 03:13.150
Elenco delle classi di film In seguito
creeremo il totale delle pagine.

47
03:13.150 --> 03:15.120
Copiatelo e incollatelo.

48
03:15.150 --> 03:19.440
È di tipo int e l'ultimo è val.

49
03:19.470 --> 03:21.900
Il risultato totale è di tipo intero.

50
03:21.900 --> 03:28.020
Copiare sempre lo stesso nome delle chiavi
nella risposta JSON.

51
03:28.020 --> 03:32.310
Poiché è sensibile alle maiuscole, non
posso creare un risultato.

52
03:32.310 --> 03:39.090
Ad esempio, perché il risultato è diverso
dai risultati nei risultati e nella
risposta JSON.

53
03:39.090 --> 03:42.360
Quindi fate sempre i risultati qui.

54
03:42.360 --> 03:50.580
Analogamente, creare sempre i campi, i
campi dati simili a quelli della risposta
JSON.

55
03:50.610 --> 03:51.060
Ok.

56
03:51.060 --> 03:56.430
Per recuperare le chiavi in una posizione
e in un formato corretti.

57
03:56.430 --> 04:04.890
Inoltre, se non è necessario scrivere, ad
esempio, lo stesso nome della risposta
JSON.

58
04:04.890 --> 04:14.700
Quindi, se voglio creare un totale di
pagine non con il trattino basso, posso
creare un totale di pagine come questo.

59
04:14.700 --> 04:22.830
Per ora non posso usare il totale delle
pagine in questo formato

60
04:22.830 --> 04:32.130
per recuperare il totale delle pagine con
underscore, perché è diverso da

61
04:32.160 --> 04:33.060
questo, ma posso usare un'annotazione
fornita da retrofit chiamata nome
serializzato.

62
04:33.060 --> 04:40.170
E qui devo specificare la chiave, la
chiave corretta all'interno della risposta
JSON.

63
04:40.170 --> 04:43.140
Quindi copiate questo e incollatelo qui.

64
04:43.140 --> 04:50.910
L'annotazione del nome serializzato fa
parte della libreria JSON, utilizzata

65
04:50.910 --> 04:53.280
per la serializzazione e la
deserializzazione di JSON in Android.

66
04:53.280 --> 05:01.500
Specifica il nome del campo nella risposta
JSON che deve

67
05:01.500 --> 05:02.760
essere mappato al campo annotato nella
classe di dati.

68
05:02.760 --> 05:13.890
Questo è particolarmente utile quando i
nomi dei campi JSON non corrispondono ai
nomi

69
05:13.890 --> 05:18.630
dei campi Java o Kotlin, o quando
contengono caratteri non validi in Java.

70
05:18.630 --> 05:20.670
Nomi dei campi Kotlin.

71
05:20.700 --> 05:27.080
Ok, se si vuole usare il totale delle
pagine, si può scrivere in questo modo.

72
05:27.110 --> 05:36.170
Per ottenere e collegare e mappare le
pagine totali con quelle della risposta
JSON.

73
05:36.200 --> 05:43.430
Ok, quindi sto collegando questo totale di
pagine a questo totale di pagine di
sottolineatura nella risposta JSON.

74
05:43.460 --> 05:44.150
Ok.

75
05:44.150 --> 05:46.520
Questa è la nostra classe di dati.

76
05:46.520 --> 05:51.860
E c'è una nota che definisce il campo dei
risultati.

77
05:51.860 --> 05:53.600
Elenco dei film.

78
05:53.600 --> 05:54.740
Elenco dei film.

79
05:54.740 --> 06:00.560
Indica che il campo dei risultati è un
elenco di oggetti filmati.

80
06:00.560 --> 06:07.010
Se torniamo alla risposta, notiamo che si
tratta di un array di oggetti JSON.

81
06:07.010 --> 06:12.890
Questi oggetti JSON sono di tipo film che
creeremo nel prossimo video.

82
06:12.920 --> 06:22.040
Ok, ogni oggetto JSON è un film e questi
film sono inclusi in

83
06:22.040 --> 06:25.520
questo array che indica che si tratta di
un elenco di film.


