Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Formati Dei Dati: JSON e XML | Basi dello Sviluppo Backend
Spring Boot Backend

bookFormati Dei Dati: JSON e XML

Nei capitoli precedenti, abbiamo analizzato il funzionamento di HTTP e come esso trasferisce i dati. In questo capitolo, esamineremo i formati come JSON e XML, che sono formati utilizzabili per trasmettere dati nel corpo di una risposta del server o durante l'invio di una richiesta al server.

Che cos'è JSON?

JSON viene utilizzato per la trasmissione dei dati in un formato chiave-valore, che lo rende molto pratico per accedere ai dati e convertirli direttamente in un oggetto.

Questo formato supporta array, oggetti e anche valori primitivi come stringhe, numeri e valori booleani.

Formati dei dati in JSON

Per le array in JSON, è possibile utilizzare la seguente sintassi:

{
  "courses": ["Math", "Science"]
}

Tutte le informazioni sono racchiuse tra parentesi graffe e il nome della chiave (come "courses") viene specificato tra virgolette. Il valore associato a questa chiave, in questo caso, è un'array (["Math", "Science"]), che è racchiusa tra parentesi quadre per indicare che si tratta di un'array.

Se desideriamo trasmettere semplici tipi primitivi (come numeri, stringhe o valori booleani) in JSON, possiamo farlo in questo modo:

{
  "name": "John Doe",
  "age": 30,
  "isStudent": false
}

Possiamo trasmettere oggetti in formato JSON. Un oggetto è rappresentato da un insieme di coppie chiave-valore racchiuse tra parentesi graffe.

{
  "address": {
    "street": "123 Main St",
    "city": "Anytown"
  }
}

Ogni chiave è una stringa ed è seguita da due punti, con il valore corrispondente, che può essere un altro oggetto, un array, un tipo primitivo o null.

Trasmissione di JSON tramite HTTP

Durante la trasmissione dei dati in formato JSON tramite HTTP, sia le richieste che le risposte utilizzano l’header Content-Type impostato su application/json. In una richiesta, i dati sono inseriti nel corpo della richiesta, mentre in una risposta, i dati sono inseriti nel corpo della risposta.

Struttura della richiesta:

POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "name": "John Doe",
  "age": 30
}

Struttura della risposta:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "status": "success",
  "data": {
     "userId": 12345
   }
}

Serializzazione e Deserializzazione JSON

La serializzazione converte un oggetto o una struttura dati in un formato adatto per la trasmissione in rete o la memorizzazione su file.

La deserializzazione è il processo inverso, che trasforma i dati dal formato JSON nuovamente in un oggetto o una struttura dati per l'utilizzo nel codice.

Dipendenza dal video per integrare la serializzazione e deserializzazione di JSON. Questa è necessaria per poter utilizzare la classe ObjectMapper.

È necessario inserire questa dipendenza nel file pom.xml e aggiornarlo.

Come utilizzare il repository Maven

Che cos'è XML?

XML rappresenta dati utilizzando tag che formano una struttura gerarchica. Ogni elemento possiede sia tag di apertura che tag di chiusura e può includere anche attributi.

Sintassi XML

<person>
    <name>John Doe</name>
    <age>30</age>
    <isStudent>false</isStudent>
    <courses>
        <course>Math</course>
        <course>Science</course>
    </courses>
    <address>
        <street>123 Main St</street>
        <city>Anytown</city>
    </address>
</person>

Come si può vedere, tutto qui è costruito su tag. Liste e oggetti non sono intrinsecamente diversi, ma se si desidera rappresentare un valore semplice, il nome del tag fungerà da chiave e il valore all'interno dei tag sarà il valore.

Trasmissione XML tramite HTTP:

Per la trasmissione di dati XML, l'header Content-Type può essere impostato su application/xml oppure text/xml. I dati vengono inseriti anche nel body della richiesta o della risposta.

Esempio di richiesta:

POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/xml

<user>
    <name>John Doe</name>
    <age>30</age>
</user>

Esempio di risposta:

HTTP/1.1 200 OK
Content-Type: application/xml

<response>
  <status>success</status>
  <data>
    <userId>12345</userId>
  </data>
</response>

Serializzazione e deserializzazione XML

Dipendenza dal video per integrare serializzazione e deserializzazione di XML. Questo è necessario per poter utilizzare la classe XmlMapper.

È necessario inserire questa dipendenza nel file pom.xml e aggiornarlo.

Riepilogo

JSON è la scelta preferita per le moderne applicazioni web grazie alla sua natura leggera e semplice. Sebbene XML possa risultare meno conveniente in molti scenari web, può essere utile nei casi che richiedono una struttura dati complessa e schemi rigorosi.

1. Quale formato viene utilizzato per rappresentare i dati come coppie key-value ed è più leggero e conveniente per la trasmissione in rete?

2. Quale dei seguenti frammenti di codice è un JSON valido?

question mark

Quale formato viene utilizzato per rappresentare i dati come coppie key-value ed è più leggero e conveniente per la trasmissione in rete?

Select the correct answer

question mark

Quale dei seguenti frammenti di codice è un JSON valido?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 5

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Awesome!

Completion rate improved to 3.45

bookFormati Dei Dati: JSON e XML

Scorri per mostrare il menu

Nei capitoli precedenti, abbiamo analizzato il funzionamento di HTTP e come esso trasferisce i dati. In questo capitolo, esamineremo i formati come JSON e XML, che sono formati utilizzabili per trasmettere dati nel corpo di una risposta del server o durante l'invio di una richiesta al server.

Che cos'è JSON?

JSON viene utilizzato per la trasmissione dei dati in un formato chiave-valore, che lo rende molto pratico per accedere ai dati e convertirli direttamente in un oggetto.

Questo formato supporta array, oggetti e anche valori primitivi come stringhe, numeri e valori booleani.

Formati dei dati in JSON

Per le array in JSON, è possibile utilizzare la seguente sintassi:

{
  "courses": ["Math", "Science"]
}

Tutte le informazioni sono racchiuse tra parentesi graffe e il nome della chiave (come "courses") viene specificato tra virgolette. Il valore associato a questa chiave, in questo caso, è un'array (["Math", "Science"]), che è racchiusa tra parentesi quadre per indicare che si tratta di un'array.

Se desideriamo trasmettere semplici tipi primitivi (come numeri, stringhe o valori booleani) in JSON, possiamo farlo in questo modo:

{
  "name": "John Doe",
  "age": 30,
  "isStudent": false
}

Possiamo trasmettere oggetti in formato JSON. Un oggetto è rappresentato da un insieme di coppie chiave-valore racchiuse tra parentesi graffe.

{
  "address": {
    "street": "123 Main St",
    "city": "Anytown"
  }
}

Ogni chiave è una stringa ed è seguita da due punti, con il valore corrispondente, che può essere un altro oggetto, un array, un tipo primitivo o null.

Trasmissione di JSON tramite HTTP

Durante la trasmissione dei dati in formato JSON tramite HTTP, sia le richieste che le risposte utilizzano l’header Content-Type impostato su application/json. In una richiesta, i dati sono inseriti nel corpo della richiesta, mentre in una risposta, i dati sono inseriti nel corpo della risposta.

Struttura della richiesta:

POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "name": "John Doe",
  "age": 30
}

Struttura della risposta:

HTTP/1.1 200 OK
Content-Type: application/json

{
  "status": "success",
  "data": {
     "userId": 12345
   }
}

Serializzazione e Deserializzazione JSON

La serializzazione converte un oggetto o una struttura dati in un formato adatto per la trasmissione in rete o la memorizzazione su file.

La deserializzazione è il processo inverso, che trasforma i dati dal formato JSON nuovamente in un oggetto o una struttura dati per l'utilizzo nel codice.

Dipendenza dal video per integrare la serializzazione e deserializzazione di JSON. Questa è necessaria per poter utilizzare la classe ObjectMapper.

È necessario inserire questa dipendenza nel file pom.xml e aggiornarlo.

Come utilizzare il repository Maven

Che cos'è XML?

XML rappresenta dati utilizzando tag che formano una struttura gerarchica. Ogni elemento possiede sia tag di apertura che tag di chiusura e può includere anche attributi.

Sintassi XML

<person>
    <name>John Doe</name>
    <age>30</age>
    <isStudent>false</isStudent>
    <courses>
        <course>Math</course>
        <course>Science</course>
    </courses>
    <address>
        <street>123 Main St</street>
        <city>Anytown</city>
    </address>
</person>

Come si può vedere, tutto qui è costruito su tag. Liste e oggetti non sono intrinsecamente diversi, ma se si desidera rappresentare un valore semplice, il nome del tag fungerà da chiave e il valore all'interno dei tag sarà il valore.

Trasmissione XML tramite HTTP:

Per la trasmissione di dati XML, l'header Content-Type può essere impostato su application/xml oppure text/xml. I dati vengono inseriti anche nel body della richiesta o della risposta.

Esempio di richiesta:

POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/xml

<user>
    <name>John Doe</name>
    <age>30</age>
</user>

Esempio di risposta:

HTTP/1.1 200 OK
Content-Type: application/xml

<response>
  <status>success</status>
  <data>
    <userId>12345</userId>
  </data>
</response>

Serializzazione e deserializzazione XML

Dipendenza dal video per integrare serializzazione e deserializzazione di XML. Questo è necessario per poter utilizzare la classe XmlMapper.

È necessario inserire questa dipendenza nel file pom.xml e aggiornarlo.

Riepilogo

JSON è la scelta preferita per le moderne applicazioni web grazie alla sua natura leggera e semplice. Sebbene XML possa risultare meno conveniente in molti scenari web, può essere utile nei casi che richiedono una struttura dati complessa e schemi rigorosi.

1. Quale formato viene utilizzato per rappresentare i dati come coppie key-value ed è più leggero e conveniente per la trasmissione in rete?

2. Quale dei seguenti frammenti di codice è un JSON valido?

question mark

Quale formato viene utilizzato per rappresentare i dati come coppie key-value ed è più leggero e conveniente per la trasmissione in rete?

Select the correct answer

question mark

Quale dei seguenti frammenti di codice è un JSON valido?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 5
some-alt