view original | go back | toggle font

9840-winsoft-json-2-4-no-source-d6-xe6

WinSoft JSON 2.4 No Source D6 XE6

Read and modify existing json files:

var Json``: TJson``; with TJsonParser``.``Create do try   Json := ParseUtf8File``(``'c:\data.json'``)``;   try     ShowMessage``(``Json``.``ToString``)``;   finally     if not Json``.``IsLiteral then       Json``.``Free``;   end``; finally   Free``; end``;

Create new json files:

var   MyArray``: TJsonArray``;   MyObject``: TJsonObject``; with TJsonObject``.``Create do try   SetNull``(``'Null'``)``;   SetTrue``(``'True'``)``;   SetFalse``(``'False'``)``;   SetNumber``(``'Number'``, 1.23``)``;   SetString``(``'String'``, 'hello'``)``;   SetDateTime``(``'DateTime'``, Now``)``;   MyArray := SetArray``(``'Array'``, 3``)``;   MyArray``.``SetString``(``0``, 'First item'``)``;   MyArray``.``SetString``(``1``, 'Second item'``)``;   MyArray``.``SetNumber``(``2``, 3.21``)``;   MyObject := SetObject``(``'Object'``)``;   MyObject``.``SetString``(``'First Member'``, 'Hello'``)``;   MyObject``.``SetString``(``'Second Member'``, 'World'``)``;   MyObject``.``SetFalse``(``'Third Member'``)``;   MyObject``.``SetTrue``(``'Fourth Member'``)``;   MyObject``.``SetNumber``(``'Other Member'``, 1.11``)``;   ShowMessage``(``ToString``)``;   ToUtf8File``(``'c:\new.json'``)``; finally   Free``; end``;

Use fast, streaming TJsonWriter to create json file without in-memory overhead of TJson objects:

with TJsonWriter``.``Create``(``'c:\data.json'``) do try   BeginObject``;     WriteNull``(``'Null'``)``;     Write``(``'True'``, True``)``;     Write``(``'False'``, False``)``;     Write``(``'Number'``, 1.23``)``;     Write``(``'String'``, 'hello'``)``;     Write``(``'DateTime'``, Now``, 0``)``;     BeginArray``(``'Array'``)``;       Write``(``'First item'``)``;       Write``(``'Second item'``)``;       Write``(``3.21``)``;     EndArray``;     BeginObject``(``'Object'``)``;       Write``(``'First Member'``, 'Hello'``)``;       Write``(``'Second Member'``, 'World'``)``;       Write``(``'Third Member'``, False``)``;       Write``(``'Fourth Member'``, True``)``;       Write``(``'Other Member'``, 1.11``)``;     EndObject``;   EndObject``;   Check``; finally   Free``; end``;