DeserializeJSON()
Converts a JSON (JavaScript Object Notation) string data representation into CFML data, such as a struct or array.
DeserializeJSON( JSONVar=string, strictMapping=boolean, format=string );
Returns: any
Argument | Description | Default |
---|---|---|
JSONVar
string,
required
|
A string that contains a valid JSON construct, or variable that represents one. Alias: json, data |
|
strictMapping
boolean,
optional
|
A Boolean value that specifies how to convert the JSON
|
true |
format
string,
optional
|
The format of the input string. Possible values are:
Introduced: 6.2.0.14 |
json5 |
Usage Notes
Prior to Lucee 6, attempting to deserialize an empty string wouldn't throw an exception.
This was changed to be compatible with ACF.
Examples
json = '{
"stringValue":"a string",
"arrayValue": ["a","b","c"],
"booleanValue":true,
"numericValue": 42
}';
myStruct = deserializeJson(json);
writeDump(myStruct);
Credit to Adam Cameron for suggesting the example
Strict Mapping with Queries
q = queryNew(
"id,name",
"numeric,varchar",
{
id: [1,2,3],
name: ['Neo','Trinity','Morpheus']
}
);
dump(q);
dump( var=deserializeJSON( serializeJSON(q, 'column'),true ),
label="'strictMapping TRUE'" );
dump( var=deserializeJSON( serializeJSON(q, 'column'),false ),
label="'strictMapping FALSE'" );
q= { nested1: q, nested2: {q3: q} };
dump( var=deserializeJSON( serializeJSON(q),false ),
label="'strictMapping FALSE *nested queries*'" );
Related System Properties / Environment Variables
- LUCEE_DESERIALIZEJSON_ALLOWEMPTY - In Lucee 5, an empty string passed into the function deserializeJson will return an empty string back. In Lucee 6, this is no longer accepted and throws an exception. You can simulate the old behavior by setting this environment variable or SysProp to `true`. By setting the log level of the application log to `warn`, you will receive information in the log when the old behavior is used. This allows you to modify your code for the new behavior without encountering runtime issues with the existing code
Type: boolean, Default: false
See also
- JavaScript
- JSON
- Parsing
- Strings
- Ajax features
- Serialize()
- SerializeJSON()
- string.deserializeJSON()
- <cfwddx>
- Search Issue Tracker
- Search Lucee Test Cases (good for further, detailed examples)