Redis Lua 解码 Json 返回空 table
Redis Lua decoding Json returning empty table
我正在尝试从 nodejs 在我的 Redis 实例中 运行 一个 lua 脚本。我在我的缓存中设置了一个 json 对象 {one:1, two:'2', three: {four: 4}}
然后 运行 lua 中的以下脚本:
local value = redis.call('get', 'myKey')
local obj = cjson.decode(value)
return obj
returns到节点的结果是[]
我尝试 return 带有以下行的类型:return type(obj)
结果返回为 table。调用 return type(value)
给我 string
。为什么 cjson 不解码实际对象?还有什么我可以用来将我的字符串解码为 json.
我找到问题了。它看起来不像节点正在序列化解码的 lua json 对象,它只是 returns 一个空数组 []
。它正在 lua 中解码。下面的代码returns节点中的一个json对象:
local value = redis.call("get", "myKey")
local obj = cjson.decode(value)
return cjson.encode(obj)
此外,以下代码正在返回 1
local value = redis.call("get", "myKey")
local obj = cjson.decode(value)
return obj.one
所以正在创建json对象,我认为redis包中的json序列化程序正在寻找来自lua的字符串。
我正在尝试从 nodejs 在我的 Redis 实例中 运行 一个 lua 脚本。我在我的缓存中设置了一个 json 对象 {one:1, two:'2', three: {four: 4}}
然后 运行 lua 中的以下脚本:
local value = redis.call('get', 'myKey')
local obj = cjson.decode(value)
return obj
returns到节点的结果是[]
我尝试 return 带有以下行的类型:return type(obj)
结果返回为 table。调用 return type(value)
给我 string
。为什么 cjson 不解码实际对象?还有什么我可以用来将我的字符串解码为 json.
我找到问题了。它看起来不像节点正在序列化解码的 lua json 对象,它只是 returns 一个空数组 []
。它正在 lua 中解码。下面的代码returns节点中的一个json对象:
local value = redis.call("get", "myKey")
local obj = cjson.decode(value)
return cjson.encode(obj)
此外,以下代码正在返回 1
local value = redis.call("get", "myKey")
local obj = cjson.decode(value)
return obj.one
所以正在创建json对象,我认为redis包中的json序列化程序正在寻找来自lua的字符串。