В настоящее время публикует эти данные:
{"test":"hello","test2":"world"}
Заголовок это:
"Content-Type: application/json"
В настоящее время я пытаюсь перебрать json, но в моем коде он по какой-то причине уже обрабатывает опубликованные данные как table
. Так что это бесполезно, даже когда я пытался кодировать и декодировать JSON в таблицу
В любом случае, когда я перебираю его, я получаю только один цикл, где ключ такой:
"test":"hello"
Мне интересно, что здесь пошло не так. Я пытаюсь перебрать каждую клавишу и установить значение в redis.
Ключ должен быть таким:
test
Вот моя content_by_lua
часть:
content_by_lua '
local cjson = require "cjson"
local redis = require "resty.redis"
local red = redis:new()
red:set_timeout(1000) -- 1 sec
local ok, err = red:connect("127.0.0.1", 6379)
if not ok then
ngx.say("failed to connect: ", err)
return
end
ngx.header.content_type = "application/json; charset=utf-8"
ngx.req.read_body()
local data, err = ngx.req.get_post_args()
if not data then
ngx.say("err: ",err)
return
end
ngx.status = ngx.HTTP_OK
for key, val in pairs(data) do
ok, err = red:set(key, val)
if not ok then
ngx.say("failed to set key: ", err)
return
end
end
';
Что я тут не так сделал?