Tabla dinámica basada en archivo Json

Tabla dinámica basada en archivo Json

Estoy intentando agregar una tabla dinámica basada en una matriz bidimensional que se almacena como JSON en un archivo en el disco. No tengo control sobre el archivo, ya que se extrae de un servicio web y los documentos se crean dinámicamente en base a él.

Como muestra del archivo, se parece a esto:

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

Respuesta1

Este es un buen ejemplo de que LuaTeX resulta muy útil. Puede cargar y analizar fácilmente el archivo json y escribir los datos en una tabla. Aquí hay un ejemplo:

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

Producción:

mesa


Nota: En lua *alee el archivo completo, mientras que *lse usaría para leer línea por línea, etc.manual de lua.

información relacionada