我的测试代码:
local jsonc = require "jsonc"
local x = {
a = 1,
b = 2,
c = 3,
d = 4,
e = 5,
}
for k, v in pairs(x) do
print(k,v)
end
print(jsonc.stringify(x))
输出:
a 1
c 3
b 2
e 5
d 4
{"a":1,"c":3,"b":2,"e":5,"d":4}
{"a":1,"b":2,"c":3,"d":4,"e":5}
Lua表无法保留其键的顺序。有两种可能的解决方案。
您可以将键存储在单独的数组中,并在需要遍历表时进行遍历:
local keys = {'a', 'b', 'c', 'd', 'e'}
或者,可以使用成对数组代替散列表:
local x = {
{'a', 1},
{'b', 2},
{'c', 3},
{'d', 4},
{'e', 5},
}