Lua脚本将空数组转换为对象。如何避免转换。
test.lua
local json_str = '{\"items\":[],\"properties\":{}}'
return cjson.encode(cjson.decode(json_str))
输出
redis-cli --eval test.lua
“ {\” items \“:{},\” properties \“:{}}”]
项目是一个数组[],但输出是一个对象{}
JSON对象定义和lua表之间的主要区别是lua表没有类型数组。
空JSON数组[]或对象{}被转换为lua表{},但空lua表{}可以被转换为数组[]或对象{}。
据我所知,redis的cjson目前没有解决此问题的方法,Redis Lua Differetiating empty array and object中提到了可能的解决方法。 (我不能争论是否可行)