Skip to content

[Feature Req] Sort order of keys of the second level depth #19

@mage-ua

Description

@mage-ua

Hello! Thanks for the great library.

Is there any sort order?

This code gives a randomly sorted values on the second level object (paramsJson):

JSON_Object outputJson = new JSON_Object();
JSON_Object paramsJson = new JSON_Object();

char output[1024];

outputJson.SetString("matchid", g_sMatchID);

paramsJson.SetString("team", teamString);
paramsJson.SetString("name", name);

paramsJson.SetInt(STAT_KILLS, kv.GetNum(STAT_KILLS));
paramsJson.SetInt(STAT_DEATHS, kv.GetNum(STAT_DEATHS));
paramsJson.SetInt(STAT_ASSISTS, kv.GetNum(STAT_ASSISTS));
paramsJson.SetInt(STAT_FLASHBANG_ASSISTS, kv.GetNum(STAT_FLASHBANG_ASSISTS));
paramsJson.SetInt(STAT_TEAMKILLS, kv.GetNum(STAT_TEAMKILLS));
paramsJson.SetInt(STAT_SUICIDES, kv.GetNum(STAT_SUICIDES));
paramsJson.SetInt(STAT_DAMAGE, kv.GetNum(STAT_DAMAGE));
paramsJson.SetInt(STAT_HEADSHOT_KILLS, kv.GetNum(STAT_HEADSHOT_KILLS));
paramsJson.SetInt(STAT_ROUNDSPLAYED, kv.GetNum(STAT_ROUNDSPLAYED));
paramsJson.SetInt(STAT_BOMBDEFUSES, kv.GetNum(STAT_BOMBDEFUSES));
paramsJson.SetInt(STAT_BOMBPLANTS, kv.GetNum(STAT_BOMBPLANTS));
paramsJson.SetInt(STAT_1K, kv.GetNum(STAT_1K));
paramsJson.SetInt(STAT_2K, kv.GetNum(STAT_2K));
paramsJson.SetInt(STAT_3K, kv.GetNum(STAT_3K));
paramsJson.SetInt(STAT_4K, kv.GetNum(STAT_4K));
paramsJson.SetInt(STAT_5K, kv.GetNum(STAT_5K));
paramsJson.SetInt(STAT_V1, kv.GetNum(STAT_V1));
paramsJson.SetInt(STAT_V2, kv.GetNum(STAT_V2));
paramsJson.SetInt(STAT_V3, kv.GetNum(STAT_V3));
paramsJson.SetInt(STAT_V4, kv.GetNum(STAT_V4));
paramsJson.SetInt(STAT_V5, kv.GetNum(STAT_V5));
paramsJson.SetInt(STAT_FIRSTKILL_T, kv.GetNum(STAT_FIRSTKILL_T));
paramsJson.SetInt(STAT_FIRSTKILL_CT, kv.GetNum(STAT_FIRSTKILL_CT));
paramsJson.SetInt(STAT_FIRSTDEATH_T, kv.GetNum(STAT_FIRSTDEATH_T));
paramsJson.SetInt(STAT_FIRSTDEATH_CT, kv.GetNum(STAT_FIRSTDEATH_CT));
paramsJson.SetInt(STAT_TRADEKILL, kv.GetNum(STAT_TRADEKILL));
paramsJson.SetInt(STAT_KAST, kv.GetNum(STAT_KAST));
paramsJson.SetInt(STAT_CONTRIBUTION_SCORE, kv.GetNum(STAT_CONTRIBUTION_SCORE));

outputJson.SetObject("params", paramsJson);

outputJson.Encode(output, sizeof(output));

delete outputJson;
delete paramsJson;

Output:

{
  matchid: 'mage_match',
  params: {
    v5: 0,
    '1kill_rounds': 0,
    name: 'Bender',
    team: 'team2',
    roundsplayed: 1,
    '2kill_rounds': 0,
    assists: 0,
    '3kill_rounds': 0,
    v3: 0,
    suicides: 0,
    tradekill: 0,
    '4kill_rounds': 0,
    v1: 0,
    deaths: 1,
    '5kill_rounds': 0,
    firstkill_t: 0,
    firstdeath_ct: 0,
    bomb_defuses: 0,
    damage: 0,
    contribution_score: 0,
    kills: 0,
    v4: 0,
    headshot_kills: 0,
    v2: 0,
    mvp: 0,
    firstkill_ct: 0,
    firstdeath_t: 1,
    teamkills: 0,
    flashbang_assists: 0,
    bomb_plants: 0,
    kast: 0
  }
}

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions