Garry's Mod Wiki

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>