JSON はかなり単純な形式なので、使用、理解、解析が簡単です。
しかし、場合によってはそれ以上のものが必要になることがあります。一般的な JSON 拡張機能をいくつか見てみましょう。
拡張 JSON はまさにその名の通りです。 JSON のこの方言は、日付などの追加のデータ型をサポートしており、独自の型を追加することもできます。
これは、日付を含むオブジェクトのシリアル化と再解析に関する通常の JSON と EJSON の違いを示す例です。
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
これは、シリアル化されたデータをネットワーク経由で送信する場合など、データを再解析する場合に非常に役立ちます。
EJSON は、MongoDB が内部で使用するものです (JSON のバイナリ形式である BSON に加えて)。
この記事にリストされている JSON 拡張機能の中で、通常の JSON も解析できるのはこれだけです。
改行区切りの JSON は、一度に 1 つの JSON オブジェクトをストリーミングするためによく使用されます。
これは次のようになります:
{"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"}
通常の JSON との違いは、データを配列でラップしないことと、各行の後にカンマがないことです (改行で区切られているため)。これにより、ストリーミングに最適な候補となります。
JSON のストリーミングとは別に、この形式が NoSQL クライアントでドキュメントのエクスポートとインポートに (EJSON とともに) 使用されているのを見てきました。
次の実装には、それぞれ独自のフレーバーを追加するさまざまな実装があります。最も完全な JSON5 を見てみましょう。
それらはすべて同じ目標、つまり構成ファイルを管理するための人間が判読できる緩和された JSON 形式を達成しようとしています。
JSON5 では、コメント、末尾のカンマ、改行、キーの引用符の解除などを追加できます。
{ // You can add comments!! unquoted: '< unquoted keys!', singleQuotes: 'I can use "double quotes" here', lineBreaks: "Supports line breaks!\ No \n's!", }
ご覧のとおり、JSON 拡張機能にはあらゆる形状とサイズがあります。アプリケーションによって使用されることを目的としたものもあれば、開発者がより簡単に構成ファイルを作成できるようにするものもあります。
次回 JSON をシリアル化/解析する必要がある場合は、これらの拡張機能のいずれかがユースケースに適しているかどうかを確認してください。
以上が構成ファイルの作成とデータの解析のための JSON 拡張機能の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。