Lua скрипт закрывает пустой массив объектом - PullRequest
4 голосов
/ 25 февраля 2020

Lua скрипт преобразует пустой массив как объект. Как избежать преобразования.

тест. lua

local json_str = '{\"items\":[],\"properties\":{}}'
return cjson.encode(cjson.decode(json_str))

Вывод

redis-cli --eval test.lua

"{\" items \ ": {}, \" properties \ ": {}}"

элементы - это массив [], но выходные данные - это объект {}

1 Ответ

2 голосов
/ 25 февраля 2020

Основное различие между JSON определением объекта и lua таблицей в том, что таблица lua не имеет массива типов.

Пустой JSON массив [] или объект {} преобразуется в lua table {}, но пустой lua table {} можно преобразовать в массив [] или объект {}.

Насколько мне известно, cjson для redis не имеет решения этой проблемы в момент, возможное решение упомянуто в Redis Lua Разграничение пустого массива и объекта . (Я не могу поспорить, если это работает)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...