- Add McJson.pas into project - Add mcjson into uses clause - Add variable and assign it as TMcJsonItem (ie: var js : tmcjsonitem; ) - Create the variable (ie: var := TMcJsonItem.create(); ) - free the variable when not in use var Form1: TForm1; js : TMcJsonItem; procedure TForm1.FormShow(Sender: TObject); begin js := TMcJsonItem.create(); end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin js.Free; end; Add into json variable Js.Add('key1').AsInteger := 1; Js.Add('key2').AsBoolean := True; Js.Add('key3').AsNumber := 1.234; Js.Add('key4').AsString := 'value 1'; // add an array Json.Add('array', jitArray); for i := 1 to 3 do Js['array'].Add.AsInteger := i; Check if a key exist if js.HasKey('key1') then MessageDlg('Key found'); To update value of key if js.HasKey(key) then begin js.Delete(key); js.Add(key).AsString := value; end; To get value of key ShowMessage(js.Values[key].AsString); Parsing line break solution js.add(key).asstring := stringreplace(value,slinkbreak,' ',[rfreplaceall]); Check if a string is a valid json try js.asjson := '{"i": 123, "f": 123.456, "s": "abc", "b": true, "n": null}'; except showmessage('not valid json'); end; Display the whole json string showmessage(js.asjson); More info at https://github.com/hydrobyte/McJSON