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 到 Java 中的 PDF 報告

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);

有關更多詳細信息、選項和示例,您可以瀏覽 documentationGitHub 存儲庫。如果有進一步的疑問和歧義,請聯繫 論壇 上的免費支持。

結論

我希望您能夠輕鬆地構建自己的基於 Java 的應用程序,以通過將 JSON 數據轉換為 PDF 格式來生成報告。同樣,您可以使用 CSV 和 XML 等其他數據源生成 DOCX 等其他格式的報告。

也可以看看