<< Click to Display Table of Contents >> Navigation: ThinBASIC Core Language > Data Structures > cHash > cHash Methods > <cHash>.FromJSon |
Description
Initialize a cHash object loading key/value pairs from a JSon string or file.
Syntax
<cHash>.FromJSon( [FILE] sJSonString)
Returns
None
Parameters
Name |
Type |
Optional |
Meaning |
sJSonString |
String |
No |
A string containing a JSon buffer
If FILE modifier is specified, sJSonString is considered a file name whose content will be automatically loaded. |
Remarks
Attention: cHash object will be erased before parsing new KeyName/Value pairs. All KeyName/Value pairs inside the object will be removed
Insert thinBasic code inside a key Value
It is possible to specify thinBasic code inside a JSon Value. If a value starts with $( and ends with ) it will be considered thinBasic code and interpreted in the fly.
Example: in the following JSon string Filename, RecordSeparator and StringDelimiter values are all included between $( and ) so they will be interpreted as thinBasic code and interpreted on the fly when <cOptions>.FromJSon will load them:
{
"Filename": "$({APP_SourcePath + \"ADODB_Test_Export_Out.csv\"})",
"AppendToFile": false,
"ColumnNames": true,
"RecordSeparator": "$({$crlf})",
"StringDelimiter": "$({$dq})",
"DecimalSeparator": ".",
"RecordBuffer": 10,
"Index": true,
"IndexBase": 1,
"IndexName": "Rec"
}
Restrictions
Structure of JSon buffer must be a flat structure with only one level of key/value pairs.
JSon String, Numeric, Boolean and Null JSon elements are supported.
JSon Arrays or objects are NOT supported.
See also
Examples
Dim ExportCsvOpt as new cHash
String JSonFileName = App_SourcePath + "jsonConfigFile.json"
String JSonStringBuffer = "{ ""Index"": true, ""IndexBase"": 1, ""IndexName"": ""Rec""}"
ExportCsvOpt.FromJSon(File_Load(JSonFileName))
ExportCsvOpt.FromJSon(File JSonFileName)
ExportCsvOpt.FromJSon(JSonStringBuffer)