En primer lugar usted debe saber lo que es JSON:
- Es formato de intercambio de datos lenguaje agnóstico.
La sintaxis de JSON está inspirada en la notación de JavaScript Object Literal, pero existen diferencias entre ellos.
Por ejemplo, en JSON todos teclas podrá ser citado, mientras que en los literales de objetos esto no es necesario:
// JSON:
{ "foo": "bar" }
// Object literal:
var o = { foo: "bar" };
Las citas son obligatorios en JSON porque en JavaScript (más exactamente en tercera ECMAScript Edition.), el uso de palabras reservadas como nombres de propiedades no está permitido, por ejemplo:
var o = { if: "foo" }; // SyntaxError in ES3
Mientras, usando una cadena literal como un nombre de propiedad (citando el pro Nombre perty) no da problemas:
var o = { "if": "foo" };
Así que para "compatibilidad" (y fácil eval'ing tal vez) las cotizaciones son obligatorias?.
Los tipos de datos en JSON también se restringen a los siguientes valores:
string
number
object
array
- Un literal como:
La gramática de Strings
cambios. Ellos tienen que estar delimitados por comillas dobles, mientras que en JavaScript, puede usar comillas simples o dobles indistintamente.
// Invalid JSON:
{ "foo": 'bar' }
El aceptada gramática JSON de Numbers
también cambia, en JavaScript puede utilizar hexadecimales literales, por ejemplo 0xFF
, o (el infame) Octal literales por ejemplo 010
. En JSON, solo puedes usar Decimal Literals.
// Invalid JSON:
{ "foo": 0xFF }
Hay algunas implementaciones buggy (Firefox 3.5+, IE8 +, json2.js) donde literales octales se permite erróneamente, por ejemplo, JSON.parse('01')
debe producir un SyntaxError
.
Una pregunta a la vez, por favor. –
posible duplicado de [¿Cuál es la diferencia entre JSON y Object Literal Notation?] (Http://stackoverflow.com/questions/2904131/what-is-the-difference-between-json-and-object-literal-notation) – Teepeemm