【问题标题】:Convert Redis data to json in Lua在 Lua 中将 Redis 数据转换为 json
【发布时间】:2018-12-07 02:00:04
【问题描述】:

我有一个 redis 数据,其类型是字符串,格式为 Json。而且,我正在使用 Nodejs redis.eval 函数来评估 Lua 脚本

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

redis 以这种形式将数据提供给 Lua 我尝试使用 string.gsub() 删除引号,但无法删除转义字符 \ 并且它仍然具有我无法实现对象 [i] 的字符串类型.hotelId 在循环中。另外,尝试 cjson.decode() 和编码,但它不起作用,或者我只是不能成功。你有什么想法吗?

谢谢

【问题讨论】:

    标签: node.js lua redis


    【解决方案1】:

    查看您的脚本会有所帮助,但无论如何,这里有一个示例,希望对您有所帮助:

    $ 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
    

    【讨论】:

      【解决方案2】:

      您可以使用简单的JSON.parse() 方法将此字符串转换为 JSON 对象, 希望对你有帮助

      【讨论】:

        猜你喜欢
        • 2013-04-21
        • 2015-06-17
        • 2014-09-14
        • 2012-02-08
        • 1970-01-01
        • 2014-11-06
        • 1970-01-01
        • 2016-06-09
        • 2020-04-02
        相关资源
        最近更新 更多