OPTIONAL
EXPERIMENTAL
SYNOPSIS

        string json_serialize(mixed <data>)

DESCRIPTION
        This efun creates a JSON object from the given LPC variable and
        returns the object encoded as a LPC string. For container types like 
        arrays, mappings and structs, this will be done recursively.
        
        Only the following LPC types are serialized. All other LPC types cause
        a  runtime error.
        <int>        -> JSON int
        <float>      -> JSON double
        <string>     -> JSON string
        <mapping>    -> JSON objects
        <array>      -> JSON arrays
        <struct>     -> JSON objects
        
        The function is available only if the driver is compiled with Iksemel
        support. In that case, __JSON__ is defined. 

LIMITATIONS 
        Only mappings with a width of 1 value per key and only string keys
        can be serialized.
        64 bit wide integers can only be serialized losslessly on hosts with
        a 64 bit wide LPC int and json-c library newer than 0.90.

BUGS
        __FLOAT_MIN__ is not serialized/parsed losslessly.

EXAMPLES
        json_serialize(42)              -> "42"
        json_serialize(42.0)            -> "42.0"
        json_serialize("hello world\n") -> "\"hello world\\n\""
        json_serialize(({1,2,3,4,5,6})) -> "[ 1, 2, 3, 4, 5, 6 ]"
        json_serialize(([ "test 1": 42, "test 2": 42.0 ]))
                                -> "{ \"test 2\": 42.000000, \"test 1\": 42 }"
        
HISTORY
        Added in LDMud 3.5.0

SEE ALSO
        json_parse(E)
