Maison  >  Article  >  interface Web  >  Extensions JSON pour écrire des fichiers de configuration et analyser les données

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

Susan Sarandon
Susan Sarandonoriginal
2024-11-07 00:29:02953parcourir

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

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"}

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!",
}

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!

Déclaration:
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