lunes, 12 de agosto de 2019

Estructura de un archivo JSON

Los archivos JSON tienen una estructura especial en forma de arbol. Son similares a los archivos XLM aunque cada uno de ellos con su propias peculiaridades.

Un archivo JSON puede ser utilizado por parte de diferentes programas, no es exclusivo para uso de JavaScript o de AJAX.

Disponemos de varias páginas que nos ayudan a validar y detectar errores.
Los archivos JSON habitualemnte comienzan y finalizan por llaves {} pero también son válidos los que usan corchetes [].

Ejemplo 1

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

Ejemplo 2

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

Ejemplo 3

 {  
  "firstName": "John",  
  "lastName": "Smith",  
  "isAlive": true,  
  "age": 27,  
  "address": {  
   "streetAddress": "21 2nd Street",  
   "city": "New York",  
   "state": "NY",  
   "postalCode": "10021-3100"  
  },  
  "phoneNumbers": [  
   {  
    "type": "home",  
    "number": "212 555-1234"  
   },  
   {  
    "type": "office",  
    "number": "646 555-4567"  
   },  
   {  
    "type": "mobile",  
    "number": "123 456-7890"  
   }  
  ],  
  "children": [],  
  "spouse": null  
 }  

Ejemplo 4

 {"widget": {  
   "debug": "on",  
   "window": {  
     "title": "Sample Konfabulator Widget",  
     "name": "main_window",  
     "width": 500,  
     "height": 500  
   },  
   "image": {   
     "src": "Images/Sun.png",  
     "name": "sun1",  
     "hOffset": 250,  
     "vOffset": 250,  
     "alignment": "center"  
   },  
   "text": {  
     "data": "Click Here",  
     "size": 36,  
     "style": "bold",  
     "name": "text1",  
     "hOffset": 250,  
     "vOffset": 100,  
     "alignment": "center",  
     "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"  
   }  
 }}  

Ejemplo 5

Este es un documento JSON perfectamente válido y no está contenido entre llaves { } sino entre corchetes [ ]. Se trata de un documento de tipo array y para acceder a los elementos se ha de hacer uso de los índices, por ejemplo [0]["powers"][0].

 [  
  {  
   "name": "Molecule Man",  
   "age": 29,  
   "secretIdentity": "Dan Jukes",  
   "powers": [  
    "Radiation resistance",  
    "Turning tiny",  
    "Radiation blast"  
   ]  
  },  
  {  
   "name": "Madame Uppercut",  
   "age": 39,  
   "secretIdentity": "Jane Wilson",  
   "powers": [  
    "Million tonne punch",  
    "Damage resistance",  
    "Superhuman reflexes"  
   ]  
  }  
 ]  

Ejemplo 6

 {   
   "PhoneBook":{   
    "objectid":"pb001",  
    "owner":"pedro@mail.com",  
    "contacts":[   
      {   
       "objectid":"pedro@mail.com",  
       "phone":"612312300",  
       "name":"Peter",  
       "title":"D.",  
       "age":24,  
       "address":[   
         {   
          "objectid":"d000",  
          "street":"5th avenue",  
          "city":"New York City",  
          "state":"New York"  
         },  
         {   
          "objectid":"d001",  
          "street":"Gran Via",  
          "city":"Las Rozas",  
          "state":"Madrid"  
         }  
       ]  
      },  
      {   
       "objectid":"jose@mail.com",  
       "phone":"612312302",  
       "name":"José",  
       "title":"PhDr.",  
       "age":52,  
       "address":[   
         {   
          "objectid":"d002",  
          "street":"Plaza España",  
          "city":"Majadahonda",  
          "state":"Madrid"  
         }  
       ]  
      },  
      {   
       "objectid":"maria@mail.com",  
       "phone":"612312301",  
       "name":"María",  
       "title":"Sra.",  
       "age":21,  
       "address":[   
         {   
          "objectid":"d001",  
          "street":"Gran Via",  
          "city":"Las Rozas",  
          "state":"Madrid"  
         }  
       ]  
      }  
    ]  
   }  
 }  

No hay comentarios:

Publicar un comentario