Dynamische Tabelle basierend auf JSON-Datei

Dynamische Tabelle basierend auf JSON-Datei

Ich versuche, eine dynamische Tabelle basierend auf einem zweidimensionalen Array hinzuzufügen, das als JSON in einer Datei auf der Festplatte gespeichert ist. Ich habe keine Kontrolle über die Datei, da sie von einem Webdienst abgerufen wird und Dokumente basierend darauf dynamisch erstellt werden.

Als Beispiel für die Datei sieht sie ungefähr so ​​aus:

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

Antwort1

Dies ist ein gutes Beispiel, bei dem LuaTeX sehr nützlich ist. Sie können damit die JSON-Datei einfach laden, analysieren und die Daten in eine Tabelle schreiben. Hier ist ein Beispiel:

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

Ausgabe:

Tisch


Hinweis: In Lua *awird die gesamte Datei gelesen, während *lzum zeilenweisen Lesen usw. verwendet wird.Lua-Handbuch.

verwandte Informationen