スプレッドシートと JSON
AEM では、Google ドキュメントや Word ドキュメントをマークダウンや HTML マークアップに変換するだけでなく、スプレッドシート(Microsoft Excel ブックや Google スプレッドシート)を、web サイトや web アプリケーションで簡単に使用できる JSON ファイルに変換します。
これにより、テーブル指向または構造化されたコンテンツで多くの用途が可能になります。
シート及びシート構造
シートの最も単純な例は、最初の行を列名として使用し、後続の行をデータとして使用するテーブルで構成されています。 例えば、次のようになります。
サイドキックを介したプレビューと公開の後、AEMがこのテーブルを JSON 表現に変換し、対応する .json リソースへのリクエストに提供されます。 上記の例は、に変換されます。
{
"total": 4,
"offset": 0,
"limit": 4,
"data": [
{
"Source": "/sidekick-extension",
"Destination": "https://chromewebstore.google.com/detail/aem-sidekick/igkmdomcgoebiipaifhmpfjhbjccggml"
},
{
"Source": "/github-bot",
"Destination": "https://github.com/apps/helix-bot"
},
{
"Source": "/install-github-bot",
"Destination": "https://github.com/apps/helix-bot/installations/new"
},
{
"Source": "/tutorial",
"Destination": "/developer/tutorial"
}
],
":type": "sheet"
}
AEMでは、複数のシートでワークブックを管理できます。
- シートが 1 つしかない場合、AEMではデフォルトでそのシートが情報のソースとして使用されます。
- 複数のシートがある場合、 AEMでは、プレフィックスが
shared-(またはhelix-)の付いたシートのみが配信されます。これにより、追加情報や、場合によっては web に配信されない同じスプレッドシートの数式を保持できます。 shared-default(またはhelix-default)という名前のシートがある場合 追加のクエリパラメーターが指定されていない場合に配信されます。
注意:helix- プレフィックスは非推奨であり、より中立的な shared- プレフィックスを使用する必要があります。
特定のシートをクエリする方法の詳細については、次の節を参照してください。
クエリパラメーター
オフセットと制限
スプレッドシートと JSON ファイルは非常に大きくなる可能性があります。 このような場合、AEMでは、limit および offset のクエリパラメーターを使用して、スプレッドシートのどの行が配信されるかを示すことができます。
AEMは常に JSON を圧縮するので、ペイロードは通常、比較的小さくなります。 したがって、limit クエリパラメーターが指定されていない場合、AEMが返す行数はデフォルトで 1,000 に制限されます。 多くの単純なケースでは、これで十分です。
シート
sheet クエリパラメーターを使用すると、アプリケーションはスプレッドシートまたはワークブックで 1 つまたは複数の特定のシートを指定できます。 例えば、?sheet=jobs は shared-jobs という名前のシートを返し、?sheet=jobs&sheet=articles は shared-jobs と shared-articles という名前のシートのデータを返します。
特殊シート名
AEMでは、特定のシート名が必要な場合に、特定のユースケースでスプレッドシートにも書き込みます。
- Forms サービスは、JSON として配信されない
incomingという名前のシートにのみ書き込みます。 - インデックスサービスは、
raw_indexという名前のシートにのみ書き込みます。このシートは、単純な単一シート設定で JSON に配信できます。
これらのサービスについて詳しくは、上記のリンクを参照してください。
配列
ネイティブ配列はセル値としてサポートされていないので、文字列として配信されます。
"tags": "[\"Adobe Life\",\"Responsibility\",\"Diversity & Inclusion\"]"
JSON.parse() を使用すると、JavaScriptで配列に戻すことができます。