JSON 是一種格式化和可讀的數據交換格式,用於傳輸帶有屬性的數據。然而,JSON 格式的大數據不是很容易表達和理解。我們主要需要將大型 JSON 數據轉換為可呈現的格式。本文將指導您使用簡單的模板將 JSON 數據轉換為 Java 中的 PDF 和 MS Word 報告。
報告生成 Java API
我將使用 GroupDocs.Assembly for Java API 從提供的 JSON 數據和模板生成 DOCX 和 TXT 格式的報告。它還支持從 CSV、XML 數據源自動生成多種格式的報告。
下載或配置
您可以從 下載部分 下載 JAR 文件,或者只獲取基於 maven 的 Java 應用程序的 pom.xml 的存儲庫和依賴項配置。
<repository>
<id>GroupDocsJavaAPI</id>
<name>GroupDocs Java API</name>
<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-assembly</artifactId>
<version>21.1</version>
</dependency>
在 Java 中從 JSON 數據生成 PDF 報告
讓我們快速跳到將引導您將 JSON 數據轉換為格式化的 PDF 報告的步驟。
- 獲取 JSON 數據源
- 根據JSON數據定義模板
- 為簡單的 java 代碼提供 JSON 數據源和模板以生成報告。
JSON數據
對於 PDF 報告生成,我將使用以下經理及其各自客戶和詳細信息的示例 JSON 數據。
\[
{
"Name":"John Smith","Contract":\[
{"Client":{"Name":"A Company"},"Price":1200000},
{"Client":{"Name":"B Ltd."},"Price":750000},
{"Client":{"Name":"C & D"},"Price":350000}\]
},
{
"Name":"Tony Anderson","Contract":\[
{"Client":{"Name":"E Corp."},"Price":650000},
{"Client":{"Name":"F & Partners"},"Price":550000}\]
},
{
"Name":"July James","Contract":\[
{"Client":{"Name":"G & Co."},"Price":350000},
{"Client":{"Name":"H Group"},"Price":250000},
{"Client":{"Name":"I & Sons"},"Price":100000},
{"Client":{"Name":"J Ent."},"Price":100000}\]
}
\]
模板
以 TXT 或 DOCX 格式定義以下模板。這將允許迭代經理及其各自的客戶及其詳細信息。之後,您可以跳轉到報告生成代碼。
<<foreach [in managers]>>Manager: <<[Name]>>
Contracts:
<<foreach [in Contract]>>- <<[Client.Name]>> ($<<[Price]>>)
<</foreach>>
<</foreach>>
Java 從 JSON 生成 PDF 報告的步驟
以下步驟和 Java 代碼允許根據定義的模板將 JSON 數據自動轉換為 PDF 報告。
- 定義 JSON 數據文件、.txt 模板文件和 PDF 輸出報告文件路徑。
- 使用 JSON 數據文件實例化 JsonDataSoure。
- 使用已定義的 JsonDataSource 創建 DataSourceInfo。
- 調用 DocumentAssembler 類的 assembleDocument 方法,根據提供的 JSON 數據和定義的模板生成 PDF 報告。
// 使用 Java 中的 TXT 模板和 GroupDocs.Assembly API 從 JSON 數據生成 PDF 報告
// 定義數據源、模板和輸出報告文件。
String jsonFilePath = "dataPath/ManagerData.json";
String templateFilePath = "templatePath/template.txt";
String reportFilePath = "reportsPath/reportFromJSON.pdf";
// 實例化 JSON 數據源
JsonDataSource datasource= new JsonDataSource(jsonFilePath);
DataSourceInfo dataSourceInfo = new DataSourceInfo(datasource,"managers");
// 生成報告
DocumentAssembler assembler = new DocumentAssembler();
assembler.assembleDocument(templateFilePath,reportFilePath,dataSourceInfo);
在 Java 中從 JSON 數據生成 MS Word 報告
同樣,和上面的PDF報表生成一樣,您可以通過以下方式輕鬆創建DOCX報表:
- 以 DOCX 格式定義相同的模板。
- 設置輸出報表文檔格式為DOCX。
- 其餘代碼將保持不變,以從 JSON 數據生成 MS Word DOCX 報告。
// 使用 GroupDocs.Assembly API 在 Java 中使用 DOCX 模板從 JSON 數據生成 Word 報告
// 定義數據源、模板和輸出報告文件。
String jsonFilePath = "dataPath/ManagerData.json";
String templateFilePath = "templatePath/template.docx";
String reportFilePath = "reportsPath/reportFromJSON.docx";
// 實例化 JSON 數據源
JsonDataSource datasource= new JsonDataSource(jsonFilePath);
DataSourceInfo dataSourceInfo = new DataSourceInfo(datasource,"managers");
// 生成報告
DocumentAssembler assembler = new DocumentAssembler();
assembler.assembleDocument(templateFilePath,reportFilePath,dataSourceInfo);
有關更多詳細信息、選項和示例,您可以瀏覽 documentation 和 GitHub 存儲庫。如果有進一步的疑問和歧義,請聯繫 論壇 上的免費支持。
結論
我希望您能夠輕鬆地構建自己的基於 Java 的應用程序,以通過將 JSON 數據轉換為 PDF 格式來生成報告。同樣,您可以使用 CSV 和 XML 等其他數據源生成 DOCX 等其他格式的報告。