JSON é um formato de intercâmbio de dados formatado e legível para transmitir dados com atributos. No entanto, os grandes dados em formato JSON não são muito apresentáveis e facilmente compreensíveis. Na maioria das vezes, precisamos converter os grandes dados JSON em um formato apresentável. Este artigo irá guiá-lo para converter dados JSON em relatórios PDF e MS Word em Java usando um modelo simples.
API Java de geração de relatórios
Usarei a API GroupDocs.Assembly for Java para gerar relatórios a partir dos dados e modelos JSON fornecidos nos formatos DOCX e TXT. Ele também suporta a geração automática de relatórios em vários formatos de fontes de dados CSV, XML.
Baixe ou configure
Você pode baixar o arquivo JAR da seção de downloads, ou apenas obter as configurações de repositório e dependência para o pom.xml de seus aplicativos Java baseados em 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>
Gerar relatório PDF a partir de dados JSON em Java
Vamos pular rapidamente para as etapas que levarão você a converter dados JSON no relatório PDF formatado.
- Obter fonte de dados JSON
- Definir modelo de acordo com dados JSON
- Fornecer fonte de dados JSON e modelo para código java simples para geração de relatórios.
Dados JSON
Para a geração do relatório PDF, usarei os seguintes dados JSON de amostra de gerentes e seus respectivos clientes e detalhes.
\[
{
"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}\]
}
\]
Modelo
Defina o seguinte modelo no formato TXT ou DOCX. Isso permitirá iterar sobre os Gerentes e seus respectivos Clientes e seus detalhes. Depois disso, você pode pular para o código para geração de relatório.
<<foreach [in managers]>>Manager: <<[Name]>>
Contracts:
<<foreach [in Contract]>>- <<[Client.Name]>> ($<<[Price]>>)
<</foreach>>
<</foreach>>
Etapas Java para gerar relatório PDF a partir de JSON
As etapas a seguir e o código Java permitem a conversão automática de dados JSON em relatório PDF conforme o modelo definido.
- Definir arquivo de dados JSON, arquivo de modelo .txt e caminhos de arquivo de relatório de saída em PDF.
- Instanciar JsonDataSoure com arquivo de dados JSON.
- Crie DataSourceInfo com JsonDataSource definido.
- Chame o método assembleDocument da classe DocumentAssembler para gerar o relatório PDF a partir dos dados JSON fornecidos e do modelo definido.
// Gerar relatório PDF a partir de dados JSON usando modelo TXT em Java com API GroupDocs.Assembly
// Defina a fonte de dados, o modelo e os arquivos de relatório de saída.
String jsonFilePath = "dataPath/ManagerData.json";
String templateFilePath = "templatePath/template.txt";
String reportFilePath = "reportsPath/reportFromJSON.pdf";
// Instanciar fonte de dados JSON
JsonDataSource datasource= new JsonDataSource(jsonFilePath);
DataSourceInfo dataSourceInfo = new DataSourceInfo(datasource,"managers");
// Gerar relatório
DocumentAssembler assembler = new DocumentAssembler();
assembler.assembleDocument(templateFilePath,reportFilePath,dataSourceInfo);
Gerar relatório do MS Word a partir de dados JSON em Java
Da mesma forma, como na geração do relatório PDF acima, você pode criar facilmente o relatório DOCX:
- Definindo o mesmo template no formato DOCX.
- Defina o formato do documento do relatório de saída como DOCX.
- O restante do código permanecerá o mesmo para gerar o relatório MS Word DOCX a partir dos dados JSON.
// Gerar relatório do Word a partir de dados JSON usando o modelo DOCX em Java com API GroupDocs.Assembly
// Defina a fonte de dados, o modelo e os arquivos de relatório de saída.
String jsonFilePath = "dataPath/ManagerData.json";
String templateFilePath = "templatePath/template.docx";
String reportFilePath = "reportsPath/reportFromJSON.docx";
// Instanciar fonte de dados JSON
JsonDataSource datasource= new JsonDataSource(jsonFilePath);
DataSourceInfo dataSourceInfo = new DataSourceInfo(datasource,"managers");
// Gerar relatório
DocumentAssembler assembler = new DocumentAssembler();
assembler.assembleDocument(templateFilePath,reportFilePath,dataSourceInfo);
Para mais detalhes, opções e exemplos, você pode acessar os repositórios documentation e GitHub. Em caso de dúvidas e ambiguidades, entre em contato com o suporte gratuito no fórum.
Conclusão
Espero que você se sinta à vontade para construir seu próprio aplicativo baseado em Java para gerar relatórios convertendo dados JSON para o formato PDF. Da mesma forma, você pode gerar relatórios em outros formatos como DOCX usando outras fontes de dados como CSV e XML.