Конвертируйте данные Redis в json в Lua - PullRequest
0 голосов
/ 28 июня 2018

У меня есть данные redis, тип которых является строкой с форматом Json. И я использую функцию Nodejs redis.eval для оценки сценария Lua

"{\"hotelId\":100001,\"modifiedAt\":123123112,\"Code\":\"MERC/ENG\",\"available\":true}"

redis передает данные Lua с помощью этой формы, которую я пытаюсь использовать string.gsub () для удаления кавычек, но не могу удалить escape-символ \, и все же у него есть строковый тип, который я не могу получить для объекта [i] .hotelId в цикле. Также пытался cjson.decode () и кодировать, но это не работает, или я просто не смог. У вас есть идея сделать это.

Спасибо

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Это поможет увидеть ваш сценарий, но в любом случае вот пример, который, надеюсь, поможет вам:

$ redis-cli
127.0.0.1:6379> SET foo "{\"hotelId\":100001,\"modifiedAt\":123123112,\"Code\":\"MERC/ENG\",\"available\":true}"
OK
127.0.0.1:6379> GET foo
"{\"hotelId\":100001,\"modifiedAt\":123123112,\"Code\":\"MERC/ENG\",\"available\":true}"
127.0.0.1:6379> EVAL "local json = redis.call('GET', KEYS[1]) local obj = cjson.decode(json) return obj['hotelId']" 1 foo
(integer) 100001
0 голосов
/ 28 июня 2018

Ну, вы можете использовать простой метод JSON.parse() для преобразования этой строки в объект JSON, надеюсь, это поможет вам

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