; MergeJsonObjectAtomic Example ; ----------------------------- ; A game and its launcher each update their own member of one shared ; settings file; neither update loses the other's. Print "This example writes demo_settings.json next to itself, then deletes it." Print "Press Y to continue, any other key to skip." WaitKey If KeyDown(21) file$="demo_settings.json" ; The launcher stores its window mode launcher=CreateJsonObject() mode=CreateJsonString("fullscreen") JsonObjectSet launcher,"mode",mode FreeJson mode If MergeJsonObjectAtomic(file$,"launcher",launcher)=0 Then RuntimeError FilesystemError() FreeJson launcher ; The game stores its volume in a different member of the same file game=CreateJsonObject() volume=CreateJsonNumber(0.8) JsonObjectSet game,"volume",volume FreeJson volume If MergeJsonObjectAtomic(file$,"game",game)=0 Then RuntimeError FilesystemError() FreeJson game ; Both members survive settings=LoadJson(file$) If settings=0 Then RuntimeError FilesystemError() Print "" Print "demo_settings.json now contains:" Print JsonStringify(settings,2) FreeJson settings DeleteFile file$ Print "" Print "Demo file deleted" Else Print "Skipped" EndIf Print "" Print "Press any key to close the example" WaitKey End