使用SSLLABS-SCAN审核各种网站上的ssl,这会输出一个.json格式的文件,每个主机都有一个数组。
我使用Lua json模块解码.json文件的内容。 我可以读取文件并打印它但无法使解析工作。它应该很容易,我已经尝试过json和cjson作为模块无济于事。
urls.json
是扫描所有主机的整个输出结束的地方
[主持人1的json-data {" key" :"价值" ," key" :"价值" ......}] [json-host for host n {" key" :"价值" ," key" :"价值" ....}]
我已经检查过了.json文件格式正确。
我扔掉了之前的所有代码并重新开始。注意到当我读取文件时它被格式化为字符串,xfile似乎只接收一个k,v对。
local cjson = require "cjson"
local json = require "json"
io.input("urls.json")
file = io.read("*all")
-- the below prints file = string
print ("file = ",type(file))
-- init the table named xfile
xfile = {}
xfile = json.decode(file)
-- the below prints xfile = table
print ("xfile = ", type(xfile))
-- the below prints i=1
for i=1,#xfile do
print ("i=",i)
end
-- the below prints 1 table: 0x987230
for k,v in pairs(xfile) do
print (k,v)
end
io.close()
答案 0 :(得分:0)
如评论中所述,整个解码的json数据在'值' xfile表中第一个键的元素:
使用sample file:
...
local json_data = xfile[1] or {}
print("First entry hostname: ", tostring(json_data["host"]))
输出:
第一个条目主机名:stackoverflow.com