Lua脚本将空数组转换为对象

问题描述 投票:4回答:1

Lua脚本将空数组转换为对象。如何避免转换。

test.lua

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

输出

redis-cli --eval test.lua

“ {\” items \“:{},\” properties \“:{}}”]

项目是一个数组[],但输出是一个对象{}

java redis lua
1个回答
2
投票

JSON对象定义和lua表之间的主要区别是lua表没有类型数组。

空JSON数组[]或对象{}被转换为lua表{},但空lua表{}可以被转换为数组[]或对象{}。

据我所知,redis的cjson目前没有解决此问题的方法,Redis Lua Differetiating empty array and object中提到了可能的解决方法。 (我不能争论是否可行)

© www.soinside.com 2019 - 2024. All rights reserved.