Использование SSLLABS-SCAN для аудита ssl на разных сайтах, это выводит один. Форматированный файл .json с массивом для каждого хоста.Разбор нескольких массивов в json из файла с использованием Lua
Я использую модуль Lua json для декодирования содержимого файла .json. Я могу прочитать файл и распечатать его, но не могу заставить парсинг работать. Это должно быть достаточно просто, я пробовал как json, так и cjson как модуль безрезультатно.
urls.json
где весь выход заканчивается для всех узлов, которые были сканированных
[JSON-данные для хоста 1 { «ключ»: «значение», «ключ»: «значение» ....} ] [json-data для хоста n {"key": "value", "key": "value" ....}]
Я проверил и файл .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()
Не могли бы вы предоставить тестовый пример, какой-то JSON, где он не работает? – ryanpattison
привет, на самом деле это не так. Это просто ничего не делает. Я проанализировал json-файл с jsonpipe и json2lua, которые отлично работают. Нет образца JSON на данный момент, он выводится из https://github.com/ssllabs/ssllabs-scan Обратите внимание Не использовать -json-flat = true для вывода, поскольку он не анализирует существующие модули lua –
проверить [эту ссылку] (http://hastebin.com/liqubetela.tex) для данных примера json –