使用Lua

时间:2015-06-30 14:23:51

标签: arrays json lua

使用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()

1 个答案:

答案 0 :(得分:0)

如评论中所述,整个解码的json数据在'值' xfile表中第一个键的元素:

使用sample file

...    
local json_data = xfile[1] or {} 
print("First entry hostname: ", tostring(json_data["host"]))

输出:

  

第一个条目主机名:stackoverflow.com