5 Persisting Dictionaries In JSON Files - essenius/FitNesseFitSharpSupportFunctions GitHub Wiki

An alternative to persisting dictionaries to a FitNesse page is simply storing them in a file. The JSON format was chosen as that’s a very common text based format, and very well suited to persist dictionaries. The API is simple: there is a Save File, a Load File, a Delete File and a Wait For File function. All of them can have a file name as a parameter; if omitted the last set filename will be used (default is DictionaryStore.json). You can also explicitly set or get the filename via the File Name property. If the file name is a relative path, it will start from the work folder of the FitNesse process, which is the Fixtures folder if you used the convention of this book. Here is an example:

!define FileName {myfile.json}

|script   |dictionary library|!{name:bob, address:here}|
|check    |count             |2                        |
|check    |get               |address      |here       |
|Add      |phone             |value        |12345      |
|set      |employed          |to           |true       |
|save file|${FileName}                                 |
|check    |file name         |${FileName}              |

Create a new dictionary (different instance), 
and load the file we just saved. Delete it 
then, so we don't leave a mess. Then check
if the data loaded correctly

!|script  |dictionary library|
|check    |count|0           |
|load file|${FileName}       |
|delete file                 |
|check    |count|4           |
|check    |get  |name|=~/b.b/|
|ensure   |get  |employed    |

Persist To JSON

The Wait For File function is useful when another process is expected to create a file that the test uses. For example, if you are using a REST call to another FitNesse page, that runs in another thread. The function first waits for the file to get created, and then for the lock to be released.