如何按顺序制作Lua表密钥

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

我的测试代码:

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}

有人帮助:

  1. 从成对输出,按密钥哈希顺序存储表,我该如何更改?
  2. 我需要输出:{"a":1,"b":2,"c":3,"d":4,"e":5}
  3. 感谢
json lua
1个回答
0
投票

Lua表无法保留其键的顺序。有两种可能的解决方案。

您可以将键存储在单独的数组中,并在需要遍历表时进行遍历:

local keys = {'a', 'b', 'c', 'd', 'e'}

或者,可以使用成对数组代替散列表:

local x = {
    {'a', 1},
    {'b', 2},
    {'c', 3},
    {'d', 4},
    {'e', 5},
}
© www.soinside.com 2019 - 2024. All rights reserved.