Herramientas de usuario

Herramientas del sitio


tags:json

¡Esta es una revisión vieja del documento!


JSON

El nombre viene de JavaScript Object Notation, es un formato de texto fácil de leer por JavaScript. Es un reemplazo perfecto al XML como formato de intercambio de datos.

Sintaxis

object
    {}
    { members } 

members
    pair
    pair , members

pair
    string : value

array
    []
    [ elements ]

elements
    value
    value , elements

value
    string
    number
    object
    array
    true
    false
    null

string
    ""
    " chars "
chars
    char
    char chars

char
    any-Unicode-character-
        except-"-or-\-or-
        control-character
    \"
    \\
    \/
    \b
    \f
    \n
    \r
    \t
    \u four-hex-digits 

number
    int
    int frac
    int exp
    int frac exp 

int
    digit
    digit1-9 digits
    - digit
    - digit1-9 digits 

frac
    . digits

exp
    e digits

digits
    digit
    digit digits

e
    e
    e+
    e-
    E
    E+
    E-

Comparación JSON con XML

El siguiente código en JSON…

 {"menu": {
   "id": "file",
   "value": "File",
   "popup": {
     "menuitem": [
       {"value": "New", "onclick": "CreateNewDoc()"},
       {"value": "Open", "onclick": "OpenDoc()"},
       {"value": "Close", "onclick": "CloseDoc()"}
     ]
   }
 }}

… equivale al siguiente en xml…

<menu id="file" value="File">
  <popup>
    <menuitem value="New" onclick="CreateNewDoc()" />
    <menuitem value="Open" onclick="OpenDoc()" />
    <menuitem value="Close" onclick="CloseDoc()" />
  </popup>
</menu>

Combinandolo con JavaScript

Para parsear objetos JSON lo mejor es utilizar el parseador oficial del creador, en JSON2 y en JSON2.
Lo agregaremos de la siguiente forma:

<script type="text/javascript" src="json2.js"></script>

Convertir un objeto a texto JSON

Con este parseador nos es muy sencillo convertir un objeto JavaScript a texto JSON:

 var obj = {
   name : 'Jeffrey',
   lastName : 'Way'
}
var json_txt = JSON.stringify(obj);

Convertir un texto JSON a objeto

Simplemente debemos pasar el texto JSON al método JSON.parse.

var myobj = JSON.parse(json_txt);
alert(myobj.name);

Convertir un texto JSON a objeto con eval

Otra opción para convertir un texto en formato JSON a un objeto JavaScript es utilizar la función eval, esta forma es inmediata del lenguaje, es decir sin necesidad de utilizar el parser, pero utilizar esta función está desaconsejado debido a lo insegura que es:

var myobj = eval('(' + json_txt + ')');
tags/json.1250275845.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)