LMSGI

Llenguatges de marques i sistemes de gestió d'informació - DAW, DAM, ASIX

View on GitHub

JSON

JSON (Java Script Object Notacion) és un format per emmagatzemar i intercanviar dades.

JSON és text, escrit amb sintaxi de JavaScript aprofitant l’ús dels objectes JavaScript.

Va néixer com a alternativa al XML.

S’utilitza molt per enviar informació des del servidor a una pàgina web.

Actualment està superant l’ús del XML en aplicacions web, gràcies a la facilitat, portabilitat i llegibilitat.

L’extensió dels fitxers JSON és .json.

json logo

A JSON existeixen dos tipus d’elements: objectes i arrays.

Objectes

Els objectes s’escriuen com a parelles de clau i valor.

Per assignar valor s’utilitza els dos punts ( : )

Exemple:

{ "name": "John" } 

⚠️ Les claus a JSON requereixen cometes dobles.

Les dades se separen per comes ( , )

Exemple:

{
  "name" : "John",
  "surname" : "Smith"
} 

Els espais en blanc i salts de línia no són significatius.

Exemple:

{ "name" : "John" , "surname" : "Smith" } 

Arrays

Un array es una llista (col·lecció ordenada) de valors.

Els arrays s’envolten de claudàtors [ ] i cada valor de dins va separat per una coma ( , ).

Exemple:

{
    "name":"John",
    "age":30,
    "cars": [ "Ford", "BMW", "Fiat" ]
}

Un valor d’un array també potser un objecte JSON.

Exemple:

{"students": 
    [
        {"firstName":"Tom" , "lastName":"Jackson"} ,
        {"firstName":"Linda" , "lastName":"Garner"} ,
        {"firstName":"Adam" , "lastName":"Cooper"}
    ]
}

Arrays anidats

Els valors d’un array també poden ser altres arrays:

Exemple:

{
  "name":"John",
  "age":30,
  "cars": [
    { "name":"Ford", "models":[ "Fiesta", "Focus", "Mustang" ] },
    { "name":"BMW", "models":[ "320", "X3", "X5" ] },
    { "name":"Fiat", "models":[ "500", "Panda" ] }
  ]
 }

Comparació de JSON i XML

Els següents exemples JSON i XML defineixen un objecte d’empleats, amb una matriu de 3 empleats:

Exemple JSON

{"employees":[
  { "firstName":"John", "lastName":"Doe" },
  { "firstName":"Anna", "lastName":"Smith" },
  { "firstName":"Peter", "lastName":"Jones" }
]}

Exemple XML

<employees>
  <employee>
    <firstName>John</firstName>
    <lastName>Doe</lastName>
  </employee>
  <employee>
    <firstName>Anna</firstName>
    <lastName>Smith</lastName>
  </employee>
  <employee>
    <firstName>Peter</firstName>
    <lastName>Jones</lastName>
  </employee>
</employees>

Similituds

Tant JSON com XML:

Avantatges de JSON

Validació

Podem comprovar la validesa d’un fitxer JSON amb eines on-line com per exemple:

Tot i que hi han editors o IDEs que, directament o afegint plugins, també ens permeten fer aquesta validació.

Però si, a més, ens volem assegurar que compleix una determinada estructura, podem fer servir: