Lua: получить данные POST

Я получаю этот JSON в данных POST:

{
    "foo":{
        "hi": "there",
        "hello": "world"
    }
}

В Lua я хочу получить foo, чтобы сохранить его в Redis, поэтому было бы здорово сохранить его как строку.

Как я могу это получить?


person loar    schedule 28.11.2017    source источник


Ответы (2)


Вам потребуется установить json-lua или lua-cjson. Затем проанализируйте ответ JSON (полученный как string), и он будет преобразован в таблицу.

Используя pairs(), вы можете перебирать ключи-значения таблицы, созданной выше.


OpenResty уже включает в себя ответвление lua-cjson.

person hjpotter92    schedule 28.11.2017

Если строка s, то извлекается значение foo:

print(s:match('"foo"%s*:%s*(%b{})'))
person lhf    schedule 28.11.2017