Revision Difference
util.TableToJSON#547175
<function name="TableToJSON" parent="util" type="libraryfunc">
<description>
Converts a table to a JSON string.
<warning>Trying to serialize or deserialize SteamID64s in JSON will NOT work correctly. They will be interpreted as numbers which cannot be precisely stored by JavaScript, Lua and JSON, leading to loss of data. You may want to use <page>util.SteamIDFrom64</page> to work around this.</warning>⤶
<warning>Trying to serialize or deserialize SteamID64s in JSON will NOT work correctly. They will be interpreted as numbers which cannot be precisely stored by JavaScript, Lua and JSON, leading to loss of data. You may want to use <page>util.SteamIDFrom64</page> to work around this.⤶
Alternatively, just append a character to the SteamID64 to force <page>util.JSONToTable</page> to treat it as a string.</warning>⤶
<warning>All integers will be converted to decimals (5 -> 5.0).</warning>
<warning>All keys are strings in the JSON format, so all keys will be converted to strings!</warning>
<bug issue="3561">This will produce invalid JSON if the provided table contains nan or inf values.</bug>
</description>
<realm>Shared and Menu</realm>
<args>
<arg name="table" type="table">Table to convert.</arg>
<arg name="prettyPrint" type="boolean" default="false">Format and indent the JSON.</arg>
</args>
<rets>
<ret name="" type="string">A JSON formatted string containing the serialized data</ret>
</rets>
</function>
<example>
<description>Writes the positions and angles of every player to a JSON file called playerstuff.json.</description>
<code>
local Players = {}
for k, v in ipairs(player.GetAll()) do
Players[k] = { pos = v:GetPos(), ang = v:GetAngles() }
end
local tab = util.TableToJSON( Players ) -- Convert the player table to JSON
file.CreateDir( "jsontest" ) -- Create the directory
file.Write( "jsontest/playerstuff.json", tab) -- Write to .json
</code>
</example>