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

Suggested prompts:

What are the main differences between JSON and XML?

Can you explain when to use JSON versus XML?

How does serialization and deserialization work in practice?

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