jsonEncodePretty
Definition
-- @/lua/common/utils.lua:363
function jsonEncodePretty(v, lvl, numberPrecision)
if v == nil then return "null" end
local vtype = type(v)
if vtype == 'string' then return stringformat('"%s"', escapeString(v)) end
if vtype == 'number' then
if v * 0 ~= 0 then -- inf,nan
return v > 0 and '9e999' or '-9e999'
else
if numberPrecision == nil then
return tostring(v)
else
if v ~= floor(v) then
return stringformat('%' .. numberPrecision .. '.' .. numberPrecision .. 'f', v)
else
return stringformat('%d', v)
end
end
end
end
if vtype == 'boolean' then return tostring(v) end
-- Handle tables
if vtype == 'table' then
lvl = lvl or 1
local indent = string.rep(' ', lvl)
local indentPrev = string.rep(' ', max(0, lvl - 1))
local tmp = {}
if next(v) == 1 and next(v, #v) == nil then
for i = 1, #v do
table.insert(tmp, jsonEncodePretty(v[i], lvl + 1, numberPrecision))
end
return stringformat('[\n' .. indent .. '%s\n' .. indentPrev .. ']', table.concat(tmp, ',\n' .. indent))
else
if next(v) == nil then
return '{}'
else
-- sort keys first
local tableKeys = tableKeysSorted(v)
for _, kk in pairs(tableKeys) do
local vv = v[kk]
local cv = jsonEncodePretty(vv, lvl + 1, numberPrecision)
if cv ~= nil then table.insert(tmp, stringformat('"%s":%s', escapeString(tostring(kk)), cv)) end
end
return stringformat('{\n'..indent .. '%s\n'.. indentPrev ..'}', table.concat(tmp, ',\n' .. indent))
end
end
end
if vtype == 'cdata' and ffi.offsetof(v, 'z') ~= nil then -- vec3
if ffi.offsetof(v, 'w') ~= nil then
return stringformat('{"x":%.10g,"y":%.10g,"z":%.10g,"w":%.10g}', v.x, v.y, v.z, v.w)
else
return stringformat('{"x":%.10g,"y":%.10g,"z":%.10g}', v.x, v.y, v.z)
end
end
return "null"
end
Callers
@/lua/ge/extensions/editor/engineAudioDebug.lua
}
local dataString = jsonEncodePretty(data)
dataString = dataString:sub(3, dataString:len() - 2)
@/lua/ge/extensions/editor/missionEditor/genericTypeData.lua
self._editing = true
local serializedProgress = jsonEncodePretty(self.mission.missionTypeData or "{}")
local arraySize = 8*(2+math.max(128, 4*serializedProgress:len()))
@/lua/common/utils.lua
for i = 1, #v do
table.insert(tmp, jsonEncodePretty(v[i], lvl + 1, numberPrecision))
end
local vv = v[kk]
local cv = jsonEncodePretty(vv, lvl + 1, numberPrecision)
if cv ~= nil then table.insert(tmp, stringformat('"%s":%s', escapeString(tostring(kk)), cv)) end
if pretty then
content = jsonEncodePretty(obj, 1, numberPrecision)
else
@/lua/ge/extensions/util/docCreator.lua
if not f then return end
f:write(jsonEncodePretty(data))
--f:write(jsonEncodeFull(data))
@/lua/common/libs/xlsxlib/tests/tests.lua
local content = string.format('// Test args: %s\r\n', serialize(queryArgs))
content = content .. jsonEncodePretty({data}, 1)
writeFile(fn, content)
@/lua/ge/extensions/editor/missionEditor/progressSingle.lua
self._editing = true
local serializedSaveData = jsonEncodePretty(self.missionInstance.saveData or "{}")
local arraySize = 8*(2+math.max(128, 4*serializedSaveData:len()))
@/lua/vehicle/partCondition.lua
writeFile("partConditionTest.json", jsonEncodePretty(data))
end
@/lua/ge/extensions/editor/missionEditor/progressSetup.lua
self._editing = true
local serializedSaveData = jsonEncodePretty(self.missionInstance.saveData or "{}")
local arraySize = 8*(2+math.max(128, 4*serializedSaveData:len()))
@/lua/ge/extensions/editor/missionEditor/objectives.lua
self._editing = true
local serializedSaveData = jsonEncodePretty(self.mission.careerSetup or "{}")
local arraySize = 8*(2+math.max(128, 4*serializedSaveData:len()))
@/lua/ge/extensions/tech/impactgen/crashOutput.lua
parts = getRelevantParts(parts)
parts = jsonEncodePretty(restructureParts(parts))
setting.level = getLevelName()
local scenario = jsonEncodePretty(setting)
request:sendResponse({