如何使用lua语言json.encode而不破坏列表的顺序?

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

我在Lua中有一个如下所示的列表,我使用json.encode()代码将该列表以json格式发送到js端。但问题是这个列表的顺序每次都会被 json.encode 改变。所以我的列表按 1,2,3 的顺序排列,在 json.encode 之后它变成 2,1,3 或 3,2,1 或 3,1,2。每次列表都是乱序的。 我该如何解决这个问题?

样本清单:

GAMES = 
{
    ["777_Thimble"] = 
    {
        ["game_name"] = "777 Thimble",
        ["game_thumbnail"] = "img/777thimble_logo.svg",
        ["1x_multiplier"] = 2.88,
        ["2x_multiplier"] = 1.44,
        ["first_bet"] = 50,
        ["second_bet"] = 100,
        ["third_bet"] = 250,
        ["four_bet"] = 1000,
        ["five_bet"] = 5000,
        ["min_attributable_bet_value"] = 5,
        ["max_attributable_bet_value"] = 10000,
    },
    ["777e_Thimble"] = 
    {
        ["game_name"] = "777 Thimble",
        ["game_thumbnail"] = "img/game_bg.svg",
        ["1x_multiplier"] = 2.88,
        ["2x_multiplier"] = 1.44,
        ["first_bet"] = 50,
        ["second_bet"] = 100,
        ["third_bet"] = 250,
        ["four_bet"] = 1000,
        ["five_bet"] = 5000,
        ["min_attributable_bet_value"] = 5,
        ["max_attributable_bet_value"] = 10000,
    },
    ["777_Thimblet"] = 
    {
        ["game_name"] = "777 Thimble",
        ["game_thumbnail"] = "img/game_bg.svg",
        ["1x_multiplier"] = 2.88,
        ["2x_multiplier"] = 1.44,
        ["first_bet"] = 50,
        ["second_bet"] = 100,
        ["third_bet"] = 250,
        ["four_bet"] = 1000,
        ["five_bet"] = 5000,
        ["min_attributable_bet_value"] = 5,
        ["max_attributable_bet_value"] = 10000,
    },
    ["777e_Thimbrle"] = 
    {
        ["game_name"] = "777 Thimble",
        ["game_thumbnail"] = "img/game_bg.svg",
        ["1x_multiplier"] = 2.88,
        ["2x_multiplier"] = 1.44,
        ["first_bet"] = 50,
        ["second_bet"] = 100,
        ["third_bet"] = 250,
        ["four_bet"] = 1000,
        ["five_bet"] = 5000,
        ["min_attributable_bet_value"] = 5,
        ["max_attributable_bet_value"] = 10000,
    },
    ["777_Thimbgle"] = 
    {
        ["game_name"] = "777 Thimble",
        ["game_thumbnail"] = "img/game_bg.svg",
        ["1x_multiplier"] = 2.88,
        ["2x_multiplier"] = 1.44,
        ["first_bet"] = 50,
        ["second_bet"] = 100,
        ["third_bet"] = 250,
        ["four_bet"] = 1000,
        ["five_bet"] = 5000,
        ["min_attributable_bet_value"] = 5,
        ["max_attributable_bet_value"] = 10000,
    },
    ["777e_Thimbfle"] = 
    {
        ["game_name"] = "777 Thimble",
        ["game_thumbnail"] = "img/game_bg.svg",
        ["1x_multiplier"] = 2.88,
        ["2x_multiplier"] = 1.44,
        ["first_bet"] = 50,
        ["second_bet"] = 100,
        ["third_bet"] = 250,
        ["four_bet"] = 1000,
        ["five_bet"] = 5000,
        ["min_attributable_bet_value"] = 5,
        ["max_attributable_bet_value"] = 10000,
    },
    ["777_Thimbled"] = 
    {
        ["game_name"] = "777 Thimble",
        ["game_thumbnail"] = "img/game_bg.svg",
        ["1x_multiplier"] = 2.88,
        ["2x_multiplier"] = 1.44,
        ["first_bet"] = 50,
        ["second_bet"] = 100,
        ["third_bet"] = 250,
        ["four_bet"] = 1000,
        ["five_bet"] = 5000,
        ["min_attributable_bet_value"] = 5,
        ["max_attributable_bet_value"] = 10000,
    },
    ["777e_Thimble2"] = 
    {
        ["game_name"] = "777 Thimble",
        ["game_thumbnail"] = "img/game_bg.svg",
        ["1x_multiplier"] = 2.88,
        ["2x_multiplier"] = 1.44,
        ["first_bet"] = 50,
        ["second_bet"] = 100,
        ["third_bet"] = 250,
        ["four_bet"] = 1000,
        ["five_bet"] = 5000,
        ["min_attributable_bet_value"] = 5,
        ["max_attributable_bet_value"] = 10000,
    },
    ["777e_Thidmble2"] = 
    {
        ["game_name"] = "777 Thimble",
        ["game_thumbnail"] = "img/game_bg.svg",
    },
    ["777e_Tdhidmble2"] = 
    {
        ["game_name"] = "777 Thimble",
        ["game_thumbnail"] = "img/game_bg.svg",
    },
    ["777e_Thicxdmble2"] = 
    {
        ["game_name"] = "777 Thimble",
        ["game_thumbnail"] = "img/game_bg.svg",
    },
    ["777e_Thidmbxle2"] = 
    {
        ["game_name"] = "777 Thimble",
        ["game_thumbnail"] = "img/game_bg.svg",
    },
    ["777e_Tchidmble2"] = 
    {
        ["game_name"] = "777 Thimble",
        ["game_thumbnail"] = "img/game_bg.svg",
    },
    ["777e_dTchidmble2"] = 
    {
        ["game_name"] = "777 Thimble",
        ["game_thumbnail"] = "img/game_bg.svg",
    },
    ["777e_Tdchidmble2"] = 
    {
        ["game_name"] = "777 Thimble",
        ["game_thumbnail"] = "img/game_bg.svg",
    },
    ["777e_Tcdhidmble2"] = 
    {
        ["game_name"] = "777 Thimble",
        ["game_thumbnail"] = "img/game_bg.svg",
    },
}

我做了很多尝试但没有任何结果 我等待您的支持。

javascript json list lua encode
1个回答
0
投票

对象中不保证键的顺序。为此,您应该使用数组。例如,您可以将每个项目的键移动为其

id

local gamesArray = {
    {
        ["id"] = "777_Thimble",
        ["game_name"] = "777 Thimble",
        ["game_thumbnail"] = "img/777thimble_logo.svg",
        ["1x_multiplier"] = 2.88,
        ["2x_multiplier"] = 1.44,
        ["first_bet"] = 50,
        ["second_bet"] = 100,
        ["third_bet"] = 250,
        ["four_bet"] = 1000,
        ["five_bet"] = 5000,
        ["min_attributable_bet_value"] = 5,
        ["max_attributable_bet_value"] = 10000,
    },
    {
        ["id"] = ,"777e_Thimble"
        ["game_name"] = "777 Thimble",
        ["game_thumbnail"] = "img/game_bg.svg",
        ["1x_multiplier"] = 2.88,
        ["2x_multiplier"] = 1.44,
        ["first_bet"] = 50,
        ["second_bet"] = 100,
        ["third_bet"] = 250,
        ["four_bet"] = 1000,
        ["five_bet"] = 5000,
        ["min_attributable_bet_value"] = 5,
        ["max_attributable_bet_value"] = 10000,
    },
    -- more entries ...
}


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