📋
tecnologie5
  • Tecnologie
  • Le basi di HTTP - HyperText Transfer Protocol
  • HTTP Explained
  • HTTP/1 vs HTTP/2 vs HTTP/3
  • Xml e JSON - rappresentazione dei dati
  • Web services
    • SOAP - Simple Object Access Protocol
    • REST - Representation State Transfer
    • Letture su REST
    • Verifica su Web Services
    • .... su Web Services
    • REST Authentication & Authorization
      • Pit Stop
    • Intro to gRPC: The REST alternative
    • GraphQL e gRPC
  • Learn-js.org
  • TypeSpec
  • Corso Java
  • Intro to Hapi: The Node.js framework
  • Hapi Tutorial Series
  • CP: Concurrency: State Models and Design Patterns
Powered by GitBook
On this page
  • Esempio
  • Riferimenti
  • Tutorial
  • Extra

Was this helpful?

Xml e JSON - rappresentazione dei dati

Linguaggi utilizzati per rappresentare i dati

PreviousHTTP ExplainedNextWeb services

Last updated 23 days ago

Was this helpful?

Esempio

Una rubrica in formato Xml che contenga il dato del nome numero di telefono fisso, mobile ed email. Ad esempio potrebbe essere, nel caso avessimo solo due contatti:

<address_book>
    <contact id="1">
        <name>Roberto Rossi</name>
        <phome>0331 345678</phone>
        <mobile>348 978654</mobile>
        <email>roby@gmail.com</email>
    </contact>
    <contact id="2">
        <name>Vittoria Rossi</name>
        <phome>0331 345688</phone>
        <mobile>348 978664</mobile>
        <email>vicky@gmail.com</email>
    </contact>
</address_book>

Abbiamo definito un root element address_book che contiene una lista di contact ognuna dei quali ha come sottoelementi name, phone, mobile e email.

L'elemento contact ha inoltre un attributo id.

Se invece la medesima rubrica la volessimo rappresentare con un documento JSON, potrebbe essere:

[
    {
        "id": 1,
        "name": "Roberto Rossi",
        "phone": "0331 345678",
        "mobile": "348 978654",
        "email": "roby@gmail.com"
    },
    {
        "id": 2,
        "name": "Vittoria Rossi",
        "phone": "0331 345688",
        "mobile": "348 978664",
        "email": "vicky@gmail.com"
    }
]

Si può vedere come il formato JSON sia, in genere, meno prolisso del formato XML.

In notazione JSON per esprimere array/liste di elementi si utilizzano le parentesi quadre []e virgola , per separare gli elementi.

Es:

[1, 2, 3, 4]
["Sole", "Luna", "Marte"]
[{ "x": 1, "y": 3.5 }, { "x": 1.7, "y": 4.8}]

Mentre gli oggetti sono rappresentati con parentesi graffe {}come visto nell'ultimo tipo di array (array di oggetti).

Ad esempio l'oggetto che rappresenta un singolo contatto dell'address book:

{
       "id": 1,
        "name": "Roberto Rossi",
        "phone": "0331 345678",
        "mobile": "348 978654",
        "email": "roby@gmail.com"
}

Inoltre in Javascript è molto semplice convertire un oggetto Javascript in documento JSON per inviarlo lungo la rete e dall'altra parte riconvertire la stringa JSON in oggetto Javascript.

La conversione da oggetto Javascript a stringa è fatta con il metodo JSON.stringify(obj).

Ad esempio:

const c1 = {
  name: "massimo",
  phone_number: "2345678"
}

const c2 = {
  name: "giovanni",
  phone_number: "8688989"
}

const contatti = [c1, c2];

var contattiString = JSON.stringify(contatti);

console.log(contattiString);

e abbiamo come output la stringa:

[{"name":"massimo","phone_number":"2345678"},{"name":"giovanni","phone_number":"8688989"}]

Partendo invece dalla stringa, in formato JSON, possiamo riottenere l'oggetto Javascript con il metodo JSON.parse(string) che ritorna un oggetto.

Ad esempio:

const jsonMsg = '[{"name":"massimo","phone_number":"2345678"},{"name":"giovanni","phone_number":"8688989"}]';

const objContatti = JSON.parse(jsonMsg);

// ciclo sui contatti e stampo per ognuno nome e numero
objContatti.forEach( e => {
    console.log(`nome: ${e.name}, numero: ${e.phone_number}`);
});

Ho l'output:

nome: massimo, numero: 2345678
nome: giovanni, numero: 8688989

Riferimenti

Esempi di utilizzo di JSON con Javascript:

Tutorial

Extra

LogoXMLWikipedia
Formato XML
LogoXMLWikipedia
LogoJavaScript Object NotationWikipedia
LogoJavaScript Object NotationWikipedia
Formato JSON
LogoJSON
LogoJSON methods, toJSONiliakan
LogoJSON Introduction
LogoJSONata