![基于Json文件的动态表](https://linux22.com/image/330794/%E5%9F%BA%E4%BA%8EJson%E6%96%87%E4%BB%B6%E7%9A%84%E5%8A%A8%E6%80%81%E8%A1%A8.png)
我正在尝试添加一个基于二维数组的动态表,该数组以 JSON 格式存储在磁盘上的文件中。我无法控制该文件,因为它是从 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
读取整个文件,而while*l
将用于逐行读取等。lua 手册。