JSON (JavaScript Object Notation), prononcé /ˈdʒeɪsən; voir aussi /ˈdʒeɪˌsɒn/[note 1]) est un format de fichier standard qui utilise de l'homme-texte lisible pour transmettre des données à des objets composés de paires attribut–valeur et le tableau des types de données (ou de tout autre serializable valeur). C'est un très commun de format de données, avec une large gamme d'applications, telles que la distribution, en remplacement de XML en AJAX systèmes.
JSON est un langage indépendant du format de données. Il a été dérivée à partir de JavaScript, mais de nombreux langages de programmation modernes comprennent un code pour générer et analyser au format JSON données. L'Internet officiel type de support de JSON est application/json. JSON noms de fichiers, utilisez l'extension .json.
Douglas Crockford a été spécifié le format JSON dans le début des années 2000. JSON a d'abord été normalisé en 2013, comme l'ECMA-404. La dernière format JSON norme a été publiée en 2017 comme le RFC 8259, et reste cohérente avec ECMA-404. Cette même année, JSON a également été normalisés ISO/IEC 21778:2017. L'ECMA et des normes ISO ne décrit que le permis de la syntaxe, tandis que la RFC couvre une partie de la sécurité et de l'interopérabilité considérations.
JSON de types de données de base sont:
- Nombre: un nombre décimal signé qui peuvent contenir une partie fractionnaire et peut utiliser l'exponentielle E la notation, mais ne peut pas inclure des nombres tels que NaN. Le format ne fait pas de distinction entre les entiers et à virgule flottante. JavaScript utilise un double-precision floating-point format pour l'ensemble de ses valeurs numériques, mais d'autres langues de la mise en œuvre de JSON peut coder les nombres différemment.
- Chaîne: une séquence de zéro ou plus caractères Unicode. Les chaînes de caractères sont délimitées par des guillemets droits et le soutien d'une barre oblique inverse s'échapper de la syntaxe.
- Booléen: l'une des valeurs true ou false
- Tableau: une liste ordonnée de zéro ou plusieurs valeurs, dont chacune peut être de tout type. Tableaux d'utiliser la notation crochets avec séparées par des virgules des éléments.
- Objet: une collection non ordonnée de paires nom–valeur où les noms (aussi appelé clés) sont des chaînes de caractères. Les objets sont destinés à représenter des tableaux associatifs, où chaque clé est unique au sein d'un objet. Les objets sont délimitées par des accolades et de l'utilisation des virgules pour séparer chaque paire, alors qu'au sein de chaque paire, le côlon caractère ':' sépare la clé ou le nom de sa valeur.
- nuls: Une valeur vide, en utilisant le mot null
Les espaces sont autorisés, et a ignoré autour ou entre les éléments syntaxiques (les valeurs et les signes de ponctuation, mais pas à l'intérieur d'une chaîne de valeur). e, en utilisant le mot null
Les espaces sont autorisés, et a ignoré autour ou entre les éléments syntaxiques (les valeurs et les signes de ponctuation, mais pas à l'intérieur d'une chaîne de valeur). Quatre caractères sont considérés comme des espaces à cet effet: espace, tabulation horizontale, saut de ligne et retour chariot. En particulier, la marque d'ordre d'octet ne doit pas être généré par une mise en œuvre conforme (même s'il peut être accepté lors de l'analyse JSON). JSON ne fournit pas de syntaxe pour les commentaires.
Les premières versions de JSON (tel que spécifié par la RFC 4627) exigé qu'un JSON valide le texte doit se composer uniquement d'un objet ou d'un type tableau, qui pourrait contenir d'autres types à l'intérieur de eux.