Json ファイルに基づく動的テーブル

Json ファイルに基づく動的テーブル

ディスク上のファイルに JSON として保存されている 2 次元配列に基づいて、動的なテーブルを追加しようとしています。ファイルは Web サービスから取得され、それに基づいてドキュメントが動的に作成されるため、ファイルを制御することはできません。

ファイルのサンプルは次のようになります。

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

答え1

これは LuaTeX が非常に便利な良い例です。これを使用すると、json ファイルを簡単に読み込んで解析し、データをテーブルに書き込むことができます。次に例を示します。

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

出力:

テーブル


注: lua では*aファイル全体を読み取りますが、*lは行ごとに読み取るために使用されます。lua マニュアル

関連情報