Lo busqué en Wikipedia y lo busqué en Google y leí la documentación oficial, pero aún no he llegado al punto en el que realmente entiendo qué es JSON y por qué lo usaría.
He estado creando aplicaciones usando PHP, MySQL y Javascript / HTML por un tiempo, y si JSON puede hacer algo para hacerme la vida más fácil o mejorar mi código o mi interfaz de usuario, me gustaría saberlo. ¿Alguien puede darme una explicación sucinta?
Respuestas:
JSON (JavaScript Object Notation) es un formato ligero que se utiliza para el intercambio de datos. Se basa en un subconjunto de lenguaje JavaScript (la forma en que los objetos se crean en JavaScript). Como se indica en el MDN , algunos JavaScript no son JSON, y algunos JSON no son JavaScript.
Un ejemplo de dónde se usa esto son las respuestas de servicios web. En los viejos tiempos, los servicios web usaban XML como su formato de datos principal para transmitir datos, pero desde que apareció JSON ( el formato JSON se especifica en RFC 4627 por Douglas Crockford ), ha sido el formato preferido porque es mucho más ligero
Puede encontrar mucha más información en el sitio web oficial de JSON .
JSON se basa en dos estructuras:
Estructura JSON
Aquí hay un ejemplo de datos JSON:
JSON en JavaScript
¡JSON (en Javascript) es una cadena!
La gente a menudo asume que todos los objetos Javascript son JSON y que JSON es un objeto Javascript. Esto es incorrecto.
En Javascript no
var x = {x:y}
es JSON , este es un objeto Javascript . Los dos no son lo mismo. El equivalente JSON (representado en el lenguaje Javascript) seríavar x = '{"x":"y"}'
.x
es un objeto de tipo cadena, no un objeto en sí mismo. Para convertir esto en un objeto Javascript completo, primero debe analizarlovar x = JSON.parse('{"x":"y"}');
,x
ahora es un objeto pero ya no es JSON.Ver objeto Javascript Vs JSON
Al trabajar con JSON y JavaScript, puede tener la tentación de usar la
eval
función para evaluar el resultado devuelto en la devolución de llamada, pero esto no se sugiere ya que hay dos caracteres (U + 2028 y U + 2029) válidos en JSON pero no en JavaScript (Lea más de esto aquí ).Por lo tanto, uno siempre debe intentar usar el script de Crockford que verifica si hay un JSON válido antes de evaluarlo. El enlace a la explicación del script se encuentra aquí y aquí hay un enlace directo al archivo js. Cada navegador importante hoy en día tiene su propia implementación para esto.
Ejemplo sobre cómo usar el analizador JSON (con el json del fragmento de código anterior):
El analizador JSON también ofrece otro método muy útil,
stringify
. Este método acepta un objeto JavaScript como parámetro y devuelve una cadena con formato JSON. Esto es útil para cuando desea enviar datos de vuelta al servidor:Los dos métodos anteriores (
parse
ystringify
) también toman un segundo parámetro, que es una función que se invocará para cada clave y valor en cada nivel del resultado final, y cada valor será reemplazado por el resultado de su función ingresada. (Más sobre esto aquí )Por cierto, para todos los que piensan que JSON es solo para JavaScript, consulte esta publicación que explica y confirma lo contrario.
Referencias
fuente
El concepto explicado: sin código ni jerga técnica
¿Qué es el JSON? - Cómo se lo expliqué a mi esposa TM
Yo: “Básicamente es una forma de comunicarse con alguien por escrito ... pero con reglas muy específicas.
Esposa: si ....?
Yo: en inglés prosaico, las reglas son bastante flexibles: al igual que con la lucha en jaula. No es así con JSON. Hay muchas formas de describir algo:
• Ejemplo 1: Nuestra familia tiene 4 personas: usted, yo y 2 niños.
• Ejemplo 2: Nuestra familia: usted, yo, niño1 y niño2.
• Ejemplo 3: Familia: [usted, yo, niño1, niño2]
• Ejemplo 4: tenemos 4 personas en nuestra familia: mamá, papá, niño1 y niño2.
Esposa: ¿Por qué no usan simplemente inglés en su lugar?
Yo: Lo harían, pero recuerda que estamos tratando con computadoras. Una computadora es estúpida y no podrá entender oraciones. Así que debemos ser realmente específicos cuando las computadoras están involucradas, de lo contrario se confunden. Además, JSON es una forma bastante eficiente de comunicarse, por lo que la mayoría de las cosas irrelevantes se eliminan, lo que es bastante útil. Si quisieras comunicar a nuestra familia a una computadora, una forma de hacerlo es así:
...... y eso es básicamente JSON. Pero recuerde, DEBE obedecer las reglas gramaticales de JSON. Si infringe esas reglas, una computadora simplemente no entenderá (es decir, analizará) lo que está escribiendo.
Esposa: Entonces, ¿cómo escribo en Json?
Una buena manera sería utilizar un serializador json, que es una biblioteca que hace el trabajo pesado por usted.
Resumen
fuente
En resumen, JSON es una forma de serialización de tal manera que se convierte en código JavaScript. Cuando se ejecuta (con eval o de otro modo), este código crea y devuelve un objeto JavaScript que contiene los datos que serializó. Esto está disponible porque JavaScript permite la siguiente sintaxis:
Puede usar esto para varios propósitos. Por un lado, es una forma cómoda de pasar datos de su servidor a su código JavaScript. Por lo tanto, esto se usa a menudo en AJAX.
También puede usarlo como un mecanismo de serialización independiente, que es más simple y ocupa menos espacio que XML. Existen muchas bibliotecas que le permiten serializar y deserializar objetos en JSON para varios lenguajes de programación.
fuente
En resumen, es una notación de script para pasar datos sobre. De alguna manera, una alternativa a XML, que admite de forma nativa tipos de datos básicos, matrices y matrices asociativas (pares de nombre-valor, llamados Objetos porque eso es lo que representan).
La sintaxis es la que se usa en JavaScript y JSON significa "notación de objetos JavaScript". Sin embargo, se ha vuelto portátil y también se usa en otros idiomas.
Un enlace útil para detalles está aquí:
http://secretgeek.net/json_3mins.asp
fuente
El formato JSON se usa a menudo para serializar y transmitir datos estructurados a través de una conexión de red. Se utiliza principalmente para transmitir datos entre un servidor y una aplicación web, y sirve como alternativa al XML.
fuente
JSON es la notación de objetos de JavaScript. Es una forma mucho más compacta de transmitir conjuntos de datos a través de conexiones de red en comparación con XML. Sugiero que JSON se use en cualquier aplicación similar a AJAX donde XML sería la opción "recomendada". La verbosidad de XML aumentará el tiempo de descarga y el mayor consumo de ancho de banda ($$$). Puede lograr el mismo efecto con JSON y su marcado está dedicado casi exclusivamente a los datos en sí y no a la estructura subyacente.
fuente
la respuesta corta común es: si está utilizando AJAX para realizar solicitudes de datos, puede enviar y devolver objetos fácilmente como cadenas JSON. Las extensiones disponibles para Javascript admiten toJSON () en todos los tipos de javascript para enviar datos al servidor en una solicitud AJAX. Las respuestas AJAX pueden devolver objetos como cadenas JSON que se pueden convertir en objetos Javascript mediante una simple llamada de evaluación, por ejemplo, si la función AJAX devuelve someAjaxFunctionCallReturningJson
podrías escribir en Javascript
JSON también se puede usar para cargas de servicio web y otros, pero es realmente conveniente para los resultados de AJAX.
fuente
Me gusta JSON principalmente porque es muy conciso . Para el contenido web que se puede comprimir, esto no es necesariamente un gran problema (de ahí que x html sea tan popular). Pero hay ocasiones en que esto puede ser beneficioso.
Por ejemplo, para un proyecto estaba transmitiendo información que necesitaba ser serializada y transmitida a través de XMPP . Como la mayoría de los servidores limitarán la cantidad de datos que puede transmitir en un solo mensaje, me pareció útil usar JSON sobre la alternativa obvia, XML.
Como beneficio adicional, si está familiarizado con Python o Javascript, ya conoce JSON y puede interpretarlo sin mucha capacitación.
fuente
¿Qué es el JSON?
JavaScript Object Notation (JSON) es un formato ligero de intercambio de datos inspirado en los literales de objetos de JavaScript.
Los valores JSON pueden consistir en:
objetos (colecciones de pares nombre-valor) matrices (listas ordenadas de valores) cadenas (entre comillas dobles) números verdaderos, falsos o nulos
JSON es independiente del lenguaje.
JSON con PHP?
Después de la versión 5.2.0 de PHP, la extensión JSON decodifica y codifica funcionalidades por defecto.
Json_encode - devuelve la representación JSON de valores Json_decode - Decodifica la cadena JSON Json_last_error - Devuelve el último error ocurrido.
¿Sintaxis y reglas de JSON?
La sintaxis JSON se deriva de la sintaxis de notación de objetos JavaScript:
Los datos están en pares de nombre / valor Los datos están separados por comas Las llaves contienen objetos Los corchetes contienen matrices
fuente
Tenemos que hacer un proyecto en la universidad y nos enfrentamos a un problema muy grande, se llama Política del mismo origen. Entre otras cosas, hace que su método XMLHttpRequest de Javascript no pueda realizar solicitudes a dominios distintos del dominio en el que se encuentra su sitio.
Por ejemplo, no puede hacer una solicitud a www.otherexample.com si su sitio está en www.example.com. JSONRequest lo permite, pero obtendrá el resultado en formato JSON si ese sitio lo permite (por ejemplo, tiene un servicio web que devuelve mensajes en JSON). Ese es un problema en el que podrías usar JSON tal vez.
Aquí hay algo práctico: Yahoo JSON
fuente
La diferencia entre JSON y la sintaxis convencional sería la siguiente (en Javascript)
Convencional
Con JSON
si usamos JSON podemos definir de manera diferente como
Lo importante que debemos recordar es que, si tenemos que construir la clase o modal "Empleado" con 100 elementos sin el método JSON, tenemos que analizar todo al crear la clase. Pero con JSON podemos definir los objetos en línea solo cuando se define un nuevo objeto para la clase.
así que esta línea a continuación es la forma de hacer cosas con JSON (solo una forma simple de definir cosas)
fuente
A veces se da tecnicismo donde no se requiere ninguno, y aunque muchas de las respuestas más votadas son precisas, técnicas y específicas, personalmente no creo que sean más fáciles de entender o concisas, como lo que se puede encontrar en Wikipedia o en documentación oficial
La forma en que me gusta pensar en JSON es exactamente lo que es: un idioma dentro de un mundo de diferentes idiomas. Sin embargo, la diferencia entre JSON y otros idiomas es que "todos" hablan "JSON, junto con su" idioma nativo ".
Usando un ejemplo del mundo real, imaginemos que tenemos tres personas. Una persona habla igbo como lengua materna. A la segunda persona le gustaría interactuar con la primera persona, sin embargo, la primera persona habla yoruba como su primer idioma.
¿Qué podemos hacer?
Afortunadamente, la tercera persona en nuestro ejemplo creció hablando Inglés, pero también pasa a hablar tanto Igbo y Yoruba como segunda lengua, y así puede actuar como intermediario entre los dos primeros individuos.
En el mundo de la programación, la primera "persona" es Python, la segunda "persona" es Ruby, y la tercera "persona" es JSON, ¡quien resulta ser capaz de "traducir" Ruby a Python y viceversa! Ahora, obviamente, esta analogía no es perfecta, pero, como alguien que es bilingüe, creo que es una manera fácil de ver cómo JSON interactúa con otros lenguajes de programación.
fuente
Es muy simple. JSON significa Java Script Object Notation. Piense en ello como una alternativa al uso de XML para transferir datos entre componentes de software.
Por ejemplo, recientemente escribí un grupo de servicios web que devolvieron JSON, y algunos desarrolladores de Javascript escribieron un código que llamaba a los servicios y consumía la información devuelta en ese formato.
fuente
JSON (notación de objeto Javascript) es un formato de datos ligero para el intercambio / transferencia de datos. Está en un par de valores clave como el JavaScript. Para la API REST se usa ampliamente para la transferencia de datos del servidor al cliente. Hoy en día, muchos de los sitios de redes sociales están usando esto. Aunque no veo esto tan robusto como XML con respecto a los tipos de datos. XML tiene tipos de datos muy ricos y XSD. A JSON le falta un poco en esto.
Para la misma cantidad de datos de cadena, JSON será más ligero en comparación con XML, ya que XML tiene todas esas etiquetas de apertura y cierre, etc.
fuente
En el contexto de Java, una razón por la que JSON podría querer ser utilizado, es que proporciona una muy buena alternativa al marco de serialización de Java, que se ha demostrado (históricamente) que está sujeto a algunas vulnerabilidades bastante graves.
Joshua Bloch discute esto en profundidad en el Artículo 85 "Prefiera alternativas a la serialización de Java" (Java 3rd Edition efectiva)
La serialización de Java inicialmente tenía la intención de traducir las estructuras de datos a un formato que pudiera transmitirse o almacenarse fácilmente. JSON cumple con este requisito, sin las vulnerabilidades graves mencionadas anteriormente.
fuente
Pruebe el siguiente código para analizar su respuesta php json: read.php
server.php
fuente