Maison > interface Web > js tutoriel > le corps du texte

Extensions JSON pour écrire des fichiers de configuration et analyser les données

Susan Sarandon
Libérer: 2024-11-07 00:29:02
original
952 Les gens l'ont consulté

JSON Extensions for writing config files and parsing data

JSON est un format plutôt simple, cela le rend facile à utiliser, à comprendre et à analyser.
Mais parfois, vous avez besoin d'un peu plus que cela, examinons quelques extensions JSON courantes.

EJSON

JSON étendu est exactement ce à quoi cela ressemble. Ce dialecte de JSON prend en charge des types de données supplémentaires comme les dates et vous permet même d'ajouter vos propres types.

Voici un exemple montrant la différence entre JSON classique et EJSON lorsqu'il s'agit de sérialiser et de réanalyser des objets contenant des dates.

const EJSON = require('ejson')

const event = {
  name: 'test',
  created_at: new Date()
}

const stingifiedJSON = JSON.stringify(event)
const stingifiedEJSON = EJSON.stringify(event)

// stringified
console.log(stingifiedJSON) // {"name":"test","created_at":"2024-11-06T00:00:00Z"}
console.log(stingifiedEJSON) // {"name":"test","created_at":{"$date":1730851200000}}

// re-parsed
console.log(typeof JSON.parse(stingifiedJSON).created_at) // string
console.log(EJSON.parse(stingifiedEJSON).created_at instanceof Date) // true
Copier après la connexion

Ceci est extrêmement utile pour réanalyser des données sérialisées, par exemple lors de leur envoi sur le réseau.
EJSON est ce que MongoDB utilise sous le capot (en plus de BSON, un format binaire de JSON).

Parmi les extensions JSON répertoriées dans cet article, c'est la seule que le JSON standard est également capable d'analyser !

NDJSON

JSON délimité par une nouvelle ligne est couramment utilisé pour diffuser un objet JSON à la fois.

Voici à quoi ça ressemble :

{"name":"test","created_at":"2024-11-02T00:00:00Z"}
{"name":"test 2","created_at":"2024-11-04T00:00:00Z"}
{"name":"test 3","created_at":"2024-11-06T00:00:00Z"}
Copier après la connexion

Ce qui est différent du JSON classique est le manque d'encapsulation des données dans un tableau et le manque de virgules après chaque ligne (puisqu'il s'agit d'une nouvelle ligne délimitée). Cela en fait un candidat idéal pour le streaming.

Outre le streaming JSON, j'ai également vu ce format être utilisé (avec EJSON) dans les clients NoSQL pour exporter et importer des documents.

JSONC/JSON5

Pour le prochain, il existe une variété d'implémentations, chacune ajoutant sa propre saveur. Regardons JSON5 car c'est le plus complet.

Ils tentent tous d'atteindre le même objectif : un format JSON assoupli et lisible par l'homme pour la gestion des fichiers de configuration.

JSON5 vous permet d'ajouter des commentaires, des virgules de fin, des sauts de ligne, des clés de retrait des guillemets, entre autres choses.

{
  // You can add comments!!
  unquoted: '< unquoted keys!',
  singleQuotes: 'I can use "double quotes" here',
  lineBreaks: "Supports line breaks!\
No \n's!",
}
Copier après la connexion

Comme vous pouvez le constater, les extensions JSON sont de toutes formes et tailles. Certains sont destinés à être utilisés par des applications, d'autres permettent aux développeurs de créer plus facilement des fichiers de configuration.
La prochaine fois que vous aurez besoin de sérialiser/analyser JSON, voyez si l'une de ces extensions a du sens pour votre cas d'utilisation !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!