543 votos

¿Qué es JSON y por qué lo uso?

He mirado en la wikipedia y el Google y leer la documentación oficial, pero todavía no he llegado al punto en el que realmente entiendo lo que JSON es, y por qué lo utilizaría.

He estado construyendo aplicaciones usando PHP, MySQL y Javascript / HTML por un tiempo, y si JSON puede hacer algo para que mi vida sea más fácil o mi código mejor o mi interfaz de usuario mejor, entonces me gustaría saberlo. ¿Puede alguien darme una explicación sucinta?

652voto

Andreas Grech Puntos 39188

JSON (JavaScript Object Notation) es un formato ligero que se utiliza para el intercambio de datos. Es también un subconjunto de JavaScript Object Notation (de la forma objects están construidas en JavaScript)


Un ejemplo de ello usada es la de los servicios web de las respuestas. En los viejos días, los servicios web utiliza XML como su principal formato de datos para la transmisión de datos, pero desde JSON apareció (El formato JSON se especifica en RFC 4627 por Douglas Crockford), ha sido el formato preferido porque es mucho más ligero

Usted puede encontrar mucha más información sobre uno de Crockford de los sitios de aquí

JSON se basa en dos estructuras:

  • Una colección de pares nombre/valor. En varios idiomas, esto se realiza como un objeto, un registro, una estructura, un diccionario, una tabla hash, una lista con llave, o una matriz asociativa.
  • Una lista ordenada de valores. En la mayoría de los idiomas, esto se realiza como una matriz, un vector, una lista o secuencia.

Estructura JSON



alt text

alt text

alt text

alt text

alt text



Aquí es un ejemplo de datos JSON:

{
     "firstName": "John",
     "lastName": "Smith",
     "address": {
         "streetAddress": "21 2nd Street",
         "city": "New York",
         "state": "NY",
         "postalCode": 10021
     },
     "phoneNumbers": [
         "212 555-1234",
         "646 555-4567"
     ]
 }

JSON en JavaScript

Al trabajar con JSON y JavaScript, usted puede ser tentado a utilizar la eval función para evaluar el resultado obtenido en la devolución de llamada, pero esto no se recomienda debido a razones de seguridad (maliciosas de datos pueden ser enviados desde el servidor al cliente y, a continuación, evaled en la secuencia de comandos del cliente con efectos nocivos).

Por lo tanto, uno siempre debe tratar de utilizar Crockford la secuencia de comandos que comprueba la validez de una JSON antes de evaluar. Enlace a la secuencia de comandos explicación se encuentra aquí y aquí hay un enlace directo al archivo js.

Ejemplo de cómo usar el Parser JSON (con el json desde el anterior fragmento de código):

//The callback function that will be executed once data is received from the server
var callback = function (result) {
    var johnny = JSON.parse(result);
    //Now, the variable 'johnny' is an object that contains all of the properties 
    //from the above code snippet (the json example)
    alert(johnny.firstName + ' ' + johnny.lastName); //Will alert 'John Smith'
};

El Parser JSON también ofrece otro método muy útil, stringify. Este método acepta un objeto de JavaScript como un parámetro y salidas de un string con formato JSON. Esto es útil para cuando se desea enviar datos al servidor:

var anObject = {name: "Andreas", surname : "Grech", age : 20};
var jsonFormat = JSON.stringify(anObject);
//The above method will output this: {"name":"Andreas","surname":"Grech","age":20}

Los dos métodos anteriores (parse y stringify) también tienen un segundo parámetro, que es una función que será llamada para cada clave y valor en cada nivel del resultado final, y cada valor será reemplazado por el resultado de su ingresado función. (Más sobre esto aquí)

Por cierto, para todos ustedes que piensan que JSON es solo para JavaScript, echa un vistazo a este post que explica y confirma lo contrario.


Referencias

48voto

Vilx- Puntos 37939

En corto JSON es una forma de serializar en tal forma, que se convierte en código JavaScript. Cuando se ejecuta (con eval o de otra manera), este código crea y devuelve un objeto de JavaScript que contiene los datos serializados. Este está disponible debido a que JavaScript permite la sintaxis siguiente:

var MyArray = [ 1, 2, 3, 4]; // MyArray is now an array with 4 elements
var MyObject = {
    'StringProperty' : 'Value',
    'IntProperty' : 12,
    'ArrayProperty' : [ 1, 2, 3],
    'ObjectProperty' : { 'SubObjectProperty': 'SomeValue' }
}; // MyObject is now an object with property values set.

Usted puede usar esto para varios propósitos. Para uno, es una manera cómoda para pasar los datos desde el servidor back-end para el código JavaScript. Por lo tanto, esto se utiliza a menudo en AJAX.

También se puede utilizar como un solo mecanismo de serialización, que es más sencillo y requiere menos espacio que XML. Muchas bibliotecas existe que permite serializar y deserializar objetos JSON para diversos lenguajes de programación.

31voto

mson Puntos 4828

No hay cosas tales como preguntas tontas ... sólo gente tonta. ;)

Estoy en una situación similar a la suya. Aquí es un muy rápido y conciso relato.

http://secretgeek.net/json_3mins.asp

16voto

Nolte Puntos 984

JSON es JavaScript Object Notation. Es una manera mucho más compacto-de transmitir conjuntos de datos a través de conexiones de red en comparación con XML. Sugiero JSON puede utilizar en cualquier aplicación AJAX-como en XML de otro modo sería la opción "recomendado". El nivel de detalle de XML se sumará a tiempo de descarga y el aumento del consumo de ancho de banda ($$$). Usted puede lograr el mismo efecto con JSON y su margen de beneficio se dedica casi exclusivamente a los datos en sí y no la estructura subyacente.

7voto

Devrath Puntos 2552

¿Qué Es JSON?

JSON es el acrónimo de JavaScript Object Notation, y es una forma de almacenar la información en una forma organizada y de fácil acceso manner.In pocas palabras, nos da una legible de recolección de datos a los que podemos acceder en una manera lógica.

De JavaScript Object Notation, es un ligero para el intercambio de datos con un formato que sea completamente independiente del idioma

El almacenamiento de Datos en JSON

Como un simple ejemplo, la información acerca de mí, podría ser escrito en JSON como sigue:

var jason = {
    "age" : "45",
    "hometown" : "California",
    "gender" : "male"
};

De esta forma se crea un objeto que se accede mediante la variable de jason. Encerrando el valor de la variable entre llaves, nos está indicando que el valor es un objeto. En el interior del objeto, se puede declarar cualquier número de propiedades con un "property-name" : "la propiedad-valor" emparejamiento, separados por comas. Para acceder a la información almacenada en jason, simplemente se puede hacer referencia al nombre de la propiedad que need.For ejemplo, el acceso a la información acerca de mí, podríamos usar las siguientes fragmentos:

document.write('Jason is ' jason.age); // Output: Jason is 24
document.write('Jason is a ' jason.gender); // Output: Jason is a male

Ejemplo::

{
    "MIT_COLLEGE": [
                    {
                      "_id": 1,
                      "StudentName": "Sam",
                      "Student_Age": "24",
                      "Student_phone": "8725436232",
                      "Student_sex": "Male",
                    },
                    {
                      "_id": 2,
                      "StudentName": "kira",
                      "Student_Age": "22",
                      "Student_phone": "8725136232",
                      "Student_sex": "Female",
                    }
                   ],
    "CAMBRIDGE_COLLEGE": [
                          {
                           "_id": 1,
                           "StudentName": "Paul",
                           "Student_Age": "26",
                           "Student_phone": "87333336232",
                           "Student_sex": "Male",
                          },
                          {
                           "_id": 2,
                           "StudentName": "michael",
                           "Student_Age": "22",
                           "Student_phone": "872115436232",
                           "Student_sex": "Male",
                          }
                    ]
}

Para ver un tutorial de vídeo, haga clic aquí.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X