Tabela dinâmica baseada em arquivo Json

Tabela dinâmica baseada em arquivo Json

Estou tentando adicionar uma tabela dinâmica baseada em uma matriz bidimensional armazenada como JSON em um arquivo no disco. Não tenho controle do arquivo, pois ele é extraído de um serviço da Web e os documentos são criados dinamicamente com base nele.

Como amostra do arquivo, é mais ou menos assim:

[
    {"firstName":"John", "lastName":"Doe"},
    {"firstName":"Anna", "lastName":"Smith"},
    {"firstName":"Peter","lastName": "Jones"}
];

Responder1

Este é um bom exemplo onde LuaTeX é muito útil. Você pode facilmente carregar e analisar o arquivo JSON com ele e gravar os dados em uma tabela. Aqui está um exemplo:

\begin{filecontents*}{data.json}
[
    {"firstName":"John", "lastName":"Doe"},
    {"firstName":"Anna", "lastName":"Smith"},
    {"firstName":"Peter", "lastName":"Jones"}
];
\end{filecontents*}
\documentclass{article}
\usepackage{luacode}
\begin{document}
\begin{luacode}
require("lualibs.lua")
local file = io.open('data.json')
local jsonstring = file:read('*a')
file.close()
local jsondata =  utilities.json.tolua(jsonstring)
tex.print('\\begin{tabular}{cc}')
tex.print('\\hline\\textbf{Firstname} & \\textbf{Lastname} \\\\\\hline')
for key, value in pairs(jsondata) do
    tex.print(value["firstName"] .. ' & ' .. value["lastName"] .. '\\\\')
end
tex.print('\\hline\\end{tabular}')
\end{luacode}
\end{document}

Saída:

mesa


Nota: Em lua *alê o arquivo inteiro, enquanto *lseria usado para ler linha por linha, etc.manual da lua.

informação relacionada