JSONツールガイド:文書とデータをJSONに変換し、また元に戻す方法
このガイドでは、JSONツールがファイルをどのように読み書きするか、PDFをJSONに変換とWordをJSONに変換が生成する文書形式、そして各作業にどのツールを使うべきかを説明します。
JSONを使う理由
JSONは、プログラム、Webサービス、AIモデルが最も扱いやすいデータ形式です。名前付きフィールドを持つオブジェクト、リスト、数値、テキスト、true、false、nullだけで構成され、それ以上のものはありません。文書やスプレッドシートはそのような形では保存されていません。このツール群は、その隔たりを両方向で橋渡しします。PDF、Wordファイル、スプレッドシート、CSV、YAML、XMLをJSONに変換し、逆にJSONをPDF、Word、Excel、CSV、HTMLといった人が読めるファイルに変換します。
すべてのツールは安全な接続を通じて当社のサーバー上で動作し、アップロードされたファイルは60分以内に削除されます。テキストの入力は、アップロードする代わりに直接貼り付けることもできます。
作業に応じたツールの選び方
| お持ちのもの | 得たいもの | 使用するツール |
|---|---|---|
| テキスト、表、メタデータをデータとして | PDFをJSONに変換 | |
| Word文書 | 見出し、段落、リスト、表をデータとして | WordをJSONに変換 |
| Excelワークブック | レコード、行、または列 | ExcelをJSONに変換 |
| CSVまたはTSVファイル | 型付きの値を持つJSON配列 | CSVをJSONに変換 |
| YAMLファイル | 同じデータをJSONとして | YAMLをJSONに変換 |
| XMLファイル | オブジェクト、属性、配列 | XMLをJSONに変換 |
| JSON | 読んだり印刷したりできるPDF | JSONをPDFに変換 |
| JSON | Excelワークブック | JSONをExcelに変換 |
| JSON | CSVファイル | JSONをCSVに変換 |
| JSON | 編集可能なWord文書 | JSONをWordに変換 |
| JSON | Webページ | JSONをHTMLに変換 |
| JSON | 設定ファイル用のYAML | JSONをYAMLに変換 |
| JSON | 別のシステム用のXML | JSONをXMLに変換 |
| 乱れた、または無効なJSON | きれいで有効なJSON | JSONフォーマッター |
| 2つのJSONファイル | 変更点の一覧 | JSONを比較 |
Markdownには専用のペアがあります。Markdown から JSONは文書ツリーを書き出し、JSON から MarkdownはJSONをMarkdownのアウトラインや表に変換します。
文書形式について
PDFをJSONに変換とWordをJSONに変換は同じ形を書き出すため、1つのコードで両方を扱えます。トップレベルには常に次のフィールドがあります。
{
"format": "acepdfmd-document",
"version": 1,
"source": {"type": "pdf", "filename": "report.pdf", "title": "Q3 Report", "pages": 12},
"pages": [{"number": 1, "width": 612, "height": 792, "words": 380, "text": "..."}],
"blocks": [
{"type": "heading", "level": 1, "text": "Q3 Report"},
{"type": "paragraph", "text": "Revenue grew..."},
{"type": "list", "ordered": false, "items": [{"level": 0, "text": "Europe"}]},
{"type": "table", "header": ["Region", "Q3"], "rows": [["Europe", 1200.5]]}
],
"tables": [{"index": 1, "page": 3, "rows": [["Region", "Q3"], ["Europe", 1200.5]]}],
"form_fields": [{"name": "email", "type": "text", "value": "[email protected]"}],
"extraction": {"engine": "pdf_to_markdown/layout", "mode": "structure", "ocr": false, "warnings": []}
}
各フィールドの意味は次のとおりです。
- source:ファイルの種類と、それが持っていたメタデータ(タイトル、作成者、件名、キーワード、作成日と更新日、ページ数)。Wordファイルの場合は単語数、表の数、画像の数も追加されます。
- pages:PDFの各ページごとの1エントリで、ポイント単位のサイズ、回転、単語数、テキストを含みます。Wordファイルにはpagesがありません。Wordはページを印刷時にしか組まないためです。
- blocks:読み順に並んだ文書です。種類はheading(レベル1から6)、paragraph(Wordから来た任意のスタイル名を含む)、list(順序の有無と、入れ子レベルを持つ項目)、table(ヘッダーと型付きの行)、code、blockquote、rule、imageです。
- tables:PDFの場合、検出されたすべての表について、見つかったページと、複数ページにわたる表の場合はその終了ページが含まれます。数値に見えるセルは数値になります。
- form_fields:PDFにフォームがある場合のみ存在します。各フィールドには名前、種類(text、choice、button、signatureのいずれか)、現在の値があります。
- extraction:どの変換器が動作したか、選択したモード、OCRが必要だったか、そして検出できなかった表などの警告です。
この形式のバージョン1は、フィールドが増えることはあっても、既存のフィールドの名前と意味が変わることはありません。
表形式のデータと入れ子
CSVとExcelはフラットですが、JSONはそうではありません。JSONをCSVやExcelに変換するとき、ネストしたオブジェクトはドット区切りの列名にフラット化され、配列は番号付きの列名になります。そのため、顧客オブジェクトと項目の配列を持つ注文レコードは、customer.name、items[0].sku、items[1].skuのような列になります。CSVやExcelからJSONに戻すときは、そのように書かれたヘッダーがネストしたオブジェクトや配列に再構築されます。バージョン番号や略語などに含まれる通常のドットを持つヘッダーは、そのままにされます。
値は入力時に型付けされます。数値は数値になり、trueとfalseは真偽値になり、空のセルはnullになり、それ以外は文字列のまま残ります。Excelから出てくる日付は、JSONに日付型がないためISO 8601形式の文字列として書き出されます。先頭にゼロが付く識別子をそのまま保持したい場合は、値の型のオプションをテキストに切り替えてください。
検証と修復
すべてのJSONツールは、入力を同じ方法で検証します。無効なファイルは、最初の誤りの行と列、そしてその行の短い抜粋とともに拒否されます。JSONフォーマッターは、人がよく貼り付けてしまう間違いも修復できます。コメント、末尾のカンマ、シングルクォートの文字列、引用符なしのキー、大文字で始まるTrue、False、None、NaN、Infinity、テキストを囲むコードフェンスなどです。修復が適用された場合はその旨が結果に示されるため、動作が知らないうちに変わることはありません。
プライバシー
アップロードされたファイルと貼り付けられたテキストは当社のサーバー上で処理され、60分以内に削除されます。詳細はプライバシーガイドをご覧ください。その時間を過ぎたものは何も保存されず、他の目的にも使用されません。