summaryrefslogtreecommitdiff
path: root/xmake/core/base/json.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2025-11-14 23:34:02 +0800
committerruki <[email protected]>2025-11-14 23:34:02 +0800
commitd066068a571d6e6515e56270374e96518d20eaf0 (patch)
tree6d96a1dddf03ea86c897b9268db9366abf71868a /xmake/core/base/json.lua
parent8d9b5970ed3f44a84f5e7ed5f7f140e72a9f1e97 (diff)
fix test
Diffstat (limited to 'xmake/core/base/json.lua')
-rw-r--r--xmake/core/base/json.lua8
1 files changed, 7 insertions, 1 deletions
diff --git a/xmake/core/base/json.lua b/xmake/core/base/json.lua
index 2ed363461..760adefa0 100644
--- a/xmake/core/base/json.lua
+++ b/xmake/core/base/json.lua
@@ -24,6 +24,7 @@ local json = json or {}
-- load modules
local io = require("base/io")
local os = require("base/os")
+local table = require("base/table")
local utils = require("base/utils")
-- export null
@@ -134,6 +135,10 @@ function json._pure_stringify(obj, level, as_key, opt)
opt = opt or {}
level = level or 0
local pretty = opt.pretty
+ local orderkeys = opt.orderkeys
+ if orderkeys == nil and pretty then
+ orderkeys = true
+ end
local indent_step = pretty and (opt.indent or 4) or nil
local newline = pretty and "\n" or ""
local curr_indent = indent_step and string.rep(" ", indent_step * level) or nil
@@ -172,7 +177,8 @@ function json._pure_stringify(obj, level, as_key, opt)
end
s[#s + 1] = '{'
local first = true
- for k, v in pairs(obj) do
+ local iter = orderkeys and table.orderpairs or pairs
+ for k, v in iter(obj) do
if not first then
s[#s + 1] = ','
end