SYNOPSIS (OPTIONAL, EXPERIMENTAL)

mixed json_parse( string jsonstring)

DESCRIPTION

This efun parses the JSON object encoded as string in jsonstr into a suitable LPC type.

json type LPC type
null int (0)
boolean int (0 or 1)
int | int64 int
double float
string string
object mapping
array arrays

Warning

All other JSON types cause a runtime error.

The JSON object can nest other JSON objects.

The function is available only if the driver is compiled with Iksemel support. In that case, __JSON__ is defined.

Limit

64 bit wide integers can only be parsed losslessly on hosts with a 64 bit wide LPC int and json-c library newer than 0.90.

Limit

__FLOAT_MIN__ is not serialized/parsed losslessly.

USAGE

The following examples demonstrate the LPC values returned by parsing a sample of JSON strings:

json_parse("42")                   // 42
json_parse("42.0")                 // 42.0
json_parse("\"hello world\\n\"")   // "hello world\n"
json_parse("[ 1, 2, 3, 4, 5, 6 ]") // ({1,2,3,4,5,6})

json_parse("{ \"test 2\": 42.000000, \"test 1\": 42 }")
// ([ "test 1": 42, "test 2": 42.0 ])

HISTORY

  • introduced (3.5.0)