JSON to sformatowany i czytelny format wymiany danych do przesyłania danych z atrybutami. Jednak duże dane w formacie JSON nie są zbyt reprezentatywne i łatwe do zrozumienia. Potrzebujemy głównie przekonwertować duże dane JSON do formatu umożliwiającego prezentację. Ten artykuł poprowadzi Cię do konwersji danych JSON na raporty PDF i MS Word w Javie przy użyciu prostego szablonu.

Interfejs API Java do generowania raportów

Będę używał GroupDocs.Assembly for Java API do generowania raportów z dostarczonych danych JSON i szablonu w formacie DOCX i TXT. Obsługuje również automatyczne generowanie raportów w wielu formatach ze źródeł danych CSV, XML.

Pobierz lub skonfiguruj

Możesz pobrać plik JAR z sekcji pobierania lub po prostu pobrać repozytorium i konfiguracje zależności dla pliku pom.xml aplikacji Java opartych na Maven.

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

Wygeneruj raport PDF z danych JSON w Javie

Przejdźmy szybko do kroków, które doprowadzą Cię do konwersji danych JSON na sformatowany raport PDF.

  • Pobierz źródło danych JSON
  • Zdefiniuj szablon zgodnie z danymi JSON
  • Udostępnij źródło danych JSON i szablon dla prostego kodu Java do generowania raportów.
JSON do raportu PDF w Javie

Dane JSON

Do generowania raportów PDF użyję następujących przykładowych danych JSON menedżerów i ich klientów oraz szczegółów.

\[
	{
		"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}\]
	}
\]

Szablon

Zdefiniuj następujący szablon w formacie TXT lub DOCX. Umożliwi to iterację menedżerów i ich klientów oraz ich danych. Następnie możesz przejść do kodu w celu wygenerowania raportu.

<<foreach [in managers]>>Manager: <<[Name]>>
Contracts:
<<foreach [in Contract]>>- <<[Client.Name]>> ($<<[Price]>>)
<</foreach>>
<</foreach>>

Kroki Java, aby wygenerować raport PDF z JSON

Poniższe kroki i kod Java umożliwiają automatyczną konwersję danych JSON do raportu PDF zgodnie ze zdefiniowanym szablonem.

  • Zdefiniuj ścieżki do pliku danych JSON, pliku szablonu .txt i pliku raportu wyjściowego PDF.
  • Utwórz instancję JsonDataSoure z plikiem danych JSON.
  • Utwórz DataSourceInfo ze zdefiniowanym JsonDataSource.
  • Wywołaj metodę assembleDocument klasy DocumentAssembler, aby wygenerować raport PDF z dostarczonych danych JSON i zdefiniowanego szablonu.
// Wygeneruj raport PDF z danych JSON przy użyciu szablonu TXT w Javie z GroupDocs.Assembly API
// Zdefiniuj źródło danych, szablon i pliki raportów wyjściowych.
String jsonFilePath = "dataPath/ManagerData.json";
String templateFilePath = "templatePath/template.txt";
String reportFilePath = "reportsPath/reportFromJSON.pdf";				
// Utwórz instancję źródła danych JSON
JsonDataSource datasource= new JsonDataSource(jsonFilePath);			  
DataSourceInfo dataSourceInfo = new DataSourceInfo(datasource,"managers");
// Generuj raport
DocumentAssembler assembler = new DocumentAssembler();
assembler.assembleDocument(templateFilePath,reportFilePath,dataSourceInfo);

Wygeneruj raport MS Word z danych JSON w Javie

Podobnie, jak w przypadku powyższego generowania raportów PDF, możesz łatwo utworzyć raport DOCX poprzez:

  • Definiowanie tego samego szablonu w formacie DOCX.
  • Ustaw format dokumentu raportu wyjściowego jako DOCX.
  • Reszta kodu pozostanie taka sama, aby wygenerować raport MS Word DOCX z danych JSON.
// Generuj raport Word z danych JSON przy użyciu szablonu DOCX w Javie z GroupDocs.Assembly API
// Zdefiniuj źródło danych, szablon i pliki raportów wyjściowych.
String jsonFilePath = "dataPath/ManagerData.json";
String templateFilePath = "templatePath/template.docx";
String reportFilePath = "reportsPath/reportFromJSON.docx";			
// Utwórz instancję źródła danych JSON
JsonDataSource datasource= new JsonDataSource(jsonFilePath);			  
DataSourceInfo dataSourceInfo = new DataSourceInfo(datasource,"managers");
// Generuj raport
DocumentAssembler assembler = new DocumentAssembler();
assembler.assembleDocument(templateFilePath,reportFilePath,dataSourceInfo);

Więcej informacji, opcji i przykładów można znaleźć w repozytorium documentation i GitHub. W przypadku dalszych pytań i niejasności skontaktuj się z bezpłatną pomocą techniczną na forum.

Wniosek

Mam nadzieję, że będziesz czuł się komfortowo budując własną aplikację opartą na Javie do generowania raportów poprzez konwersję danych JSON do formatu PDF. Podobnie możesz generować raporty w innych formatach, takich jak DOCX, korzystając z innych źródeł danych, takich jak CSV i XML.

Zobacz też