踩坑
# lua5.1 number 转 string 问题
部分number类型转为string类型会造成后几位错误, 如下
local num = 1234209856723049856
local numStr = string.format("%.0f", num)
print(type(num), tostring(num), numStr)
-- 运行
lua5.1 test.lua
number 1.234209856723e+18 1234209856723049984
1
2
3
4
5
6
7
2
3
4
5
6
7
该问题在lua5.3得到了解决, 但是由于kong不支持lua5.3, 所以在kong中暂时不能做这种转换
# cjson转换如果key为字符串则不保证顺序性
# encode
local cjson = require("cjson")
local function printTable(tab)
local str = cjson.encode(tab)
print(str)
end
local tab = {
aa = "11",
a = "1",
b = "2",
c = "3",
d = "4",
}
local tabKeyNum = { "22", "1", "2", "3", "4", }
printTable(tab)
printTable(tabKeyNum)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# decode
local cjson = require("cjson")
local function printTableStr(tabStr)
for i, v in pairs(cjson.decode(tabStr)) do
print(i, v)
end
end
local tabStr = "{\"a\":\"1\",\"b\":2,\"c\":3,\"d\":\"4\"}"
local tabNum = "[\"22\",\"1\",\"2\",\"3\",\"4\"]"
printTableStr(tabStr)
printTableStr(tabNum)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# konga不支持插件配置文件使用复杂类型
比如List<Object>
,map
等, kong本身是支持的, 但是konga中不能正常显示和修改
在一些kong的自带插件中有使用到类似的类型, konga中也能正常显示与修改, 但是这实际上是konga采用硬编码的方式对指定的插件做了兼容, 如果将插件复制一份修改下名字就会发现不支持了
-_-||
上次更新: 2021/06/03, 15:36:46
← 调用c文件