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
|
edit
A string that contains a valid JSON construct, or variable that represents one. Alias: json, data |
|
|
strictMapping
boolean,
optional
|
edit
A Boolean value that specifies how to convert the JSON
|
true |
|
format
string,
optional
|
edit
The format of the input string. Possible values are:
Introduced: 6.2.0.14 |
json5 |
Usage Notes
editPrior to Lucee 6, attempting to deserialize an empty string wouldn't throw an exception.
This was changed to be compatible with ACF.
Examples
editjson = '{
"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 open_in_new
- Search Lucee Test Cases open_in_new (good for further, detailed examples)