Format JSON

Format JSON

Format JSON

JSON Il s'agit d'un format d'échange de données basé sur du texte, ce qui signifie qu'il est facile à lire pour une personne ainsi que pour un programme. Son nom correspond à l'acronyme anglais de Notation d'objet JavaScript et est normalisé comme ECMA-404. Bien qu'il s'agisse d'un format très proche en syntaxe de JavaScript, parce qu'il est très simple à traiter pour encoder des données d'objet ou pour les obtenir, il est également utilisé dans de nombreux autres langages de programmation (C, C + +, Java, Python...) comme alternative, par exemple, au XML, qui a un objectif similaire mais, parce qu'il inclut plus de méta-informations, nécessite plus de texte et prend donc plus de place, consomme plus de bande passante et nécessite plus de ressources pour encoder et décoder les informations qu'il contient. JSON.

Table des matières

    Les données d'un objet codées dans JSON Ils sont entourés d'accolades, les différentes propriétés incluses à l'intérieur sont séparées par des virgules et les noms de propriétés précèdent la valeur, dont ils sont séparés par deux points.

    Aperçu de la syntaxe d'un objet au format JSON

    Les noms de propriétés doivent être placés entre guillemets à l'aide de guillemets doubles (bien que certains analyseurs prennent en charge les guillemets simples), et bien que certains caractères spéciaux soient autorisés pour les noms (tels que les accents), il n'est pas recommandé d'éviter les critères de certains moteurs d'analyse et de éviter les conflits lors de l'utilisation de la propriété, en particulier avec la syntaxe dot(object.property)

    Dans l'exemple ci-dessus, vous pouvez voir un objet qui possède six propriétés avec des valeurs simples, numériques, booléennes ou textuelles ; mais au format JSON, les propriétés peuvent également acquérir comme valeur un objet (y compris l'"objet spécial" null) ou un tableau en plus d'une chaîne de texte (un texte entre guillemets), un nombre (sous différents formats) ou une valeur booléenne (vrai ou faux ).

    Comme pour la langue JavaScript (JSON est un sous-ensemble de JavaScript) pour exprimer une matrice, ses valeurs sont mises entre crochets et séparées par des virgules. Le cas le plus simple est illustré dans l’exemple ci-dessous ; Il s'agit d'un tableau unidimensionnel, un vecteur, composé de valeurs numériques.

    En JavaScript Il n'est pas nécessaire que tous les éléments d'un tableau soient du même type, vous pouvez mélanger, par exemple, des chaînes de texte et des valeurs numériques. Un vecteur, un tableau unidimensionnel, peut également être l'un des éléments d'un autre tableau, permettant de construire des tableaux multidimensionnels de longueurs variables. L'exemple suivant montre un objet avec trois propriétés : la première est un tableau bidimensionnel de longueurs fixes, la deuxième de longueurs variables et la troisième est formée d'un tableau avec des valeurs de types différents.

    L'exemple suivant utilise d'autres objets comme valeurs pour les propriétés de l'objet parent. Il n'y a pas de limite au niveau d'imbrication, donc, à leur tour, les objets qui sont des valeurs de propriété du parent peuvent également avoir d'autres objets comme valeurs de propriété, etc.

    Tout comme cela arrive avec JavaScript, les codes d'échappement sont utilisés pour inclure certains caractères dans une chaîne de texte. La manière la plus générique consiste à utiliser des codes Unicode exprimés avec la barre d'échappement, la lettre u et quatre chiffres hexadécimaux au format "\u263A" pour faire référence à ☺ par exemple.

    Les caractères standards, présents dans la plupart des langages (similaires au C) sont les suivants

    • Retour arrière \b Code ASCII 8 (0x08)
    • Tabulatrice \t Code ASCII 9 (0x09) Il est généralement représenté par HT (tabulateur horizontal)
    • Nouvelle ligne \n Code ASCII 10 (0x0A) Il est généralement représenté par LF (saut de ligne)
    • Nueva página \f Code ASCII 12 (0x0C) Généralement représenté par FF (saut de page)
    • Retour \r Code ASCII 13 (0x0D) Il est généralement représenté par CR (retour chariot)
    • Comillas \" Code ASCII 34 (0x22)
    • barre divisée \/ Code ASCII 57 (0x2F)
    • Barre oblique inverse \\ Code ASCII 134 (0x5C)
    • code unicode \uXXXX

    Dérivé de C (et lié à Unix et autres, comme GNU / Linux) la fin de la ligne est généralement représentée par \n et c'est celui qu'il faut choisir en JSON mais il est intéressant de rappeler que certains systèmes d'exploitation préfèrent d'autres alternatives. Windows représente généralement avec \r\n fins de lignes et Mac OS (avant OS \r

    Concernant le format numérique, la référence est également JavaScript. Le séparateur décimal est le point, le tiret (ASCII 45 0x2D) est utilisé comme signe négatif et le notation sous forme exponentielle (Notation scientifique) les usages E comme indicateur (qui peut être en majuscule ou en minuscule)

    Comme je l'ai dit au début, pour utiliser les données qui auront été obtenues sous forme de texte, les différents langages de programmation disposent de fonctions d'analyse et d'affectation. L'exemple suivant montre comment ils seraient utilisés dans JavaScript. Pour pouvoir l'utiliser depuis une console, l'affectation des données est incluse JSON Pour éviter d'éventuelles erreurs en fonction de la norme ECMA utilisée par l'interprète JavaScript l'affectation d'objet est effectuée JSON en une seule ligne. Édition 6 de 2016 (ECMA-262) prend en charge les chaînes multilignes, l'édition 5 (jusqu'en 2011) doit ajouter un code d'échappement \ et dans les précédents, vous devez le résoudre à la main ou utiliser une seule ligne.

    Un avertissement pour ne pas confondre les nouveaux utilisateurs JavaScript. À l'intérieur du code JavaScript Il n'est pas nécessaire d'utiliser une chaîne de texte pour créer un objet, dans l'exemple précédent elle sert à simuler des données arrivant, par exemple, d'un serveur. Pour affecter un objet à une variable, quelque chose comme :

    Cet objet pourrait être converti en texte, par exemple, avec la fonction stringify comme suit:

    Le format JSON Il est assez flexible mais, principalement parce qu'il est basé sur du texte pour être lisible par l'homme, il présente certains inconvénients. La première est qu’il nécessite plus de mémoire et consomme plus de bande passante que ce qui est nécessaire. Dans les exemples précédents, on a utilisé un format qui se veut plus lisible qu'économique, ils ne constituent donc pas un échantillon d'économies, même s'il y a de nombreux éléments du format (accolades, crochets, guillemets...) qui continuer à consommer des ressources par rapport aux informations représentées en brut.

    Le deuxième problème se pose lorsqu'il s'agit de données purement binaires (par exemple des images). Lorsqu'il s'agit de petites portions, il peut être résolu avec ce qui a été expliqué pour résoudre le formatage des caractères spéciaux, mais s'il s'agit de coder des informations de certaines dimensions, il faudra l'intégrer dans le Format JSON en utilisant un autre format de texte. L'encodage le plus utilisé pour résoudre cet aspect est Base64 puisque de nombreuses langues disposent de bibliothèques pour convertir les informations dans un sens ou dans l’autre. Si les données manipulées sont principalement de ce type et/ou s'il n'est pas nécessaire qu'une personne interprète les informations sans programme, il convient de se demander si le format JSON est le plus adapté.

    Poster un commentaire

    Vous avez peut-être manqué