Sample code for 30+ languages & platforms
Delphi DLL

Swap JSON Objects

See more JSON Examples

Demonstrates how to swap two JSON objects within a JSON document.

Chilkat Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, JsonObject;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
json: HCkJsonObject;
index1: Integer;
index2: Integer;
jsonSara: HCkJsonObject;

begin
success := False;

json := CkJsonObject_Create();
CkJsonObject_putEmitCompact(json,False);

// Load the following JSON:

// {
//   "petter": {
//     "DOB": "26/02/1986",
//     "gender": "male",
//     "country": "US"
//   },
//   "Sara": {
//     "DOB": "13/05/1982",
//     "gender": "female",
//     "country": "FR"
//   },
//   "Jon": {
//     "DOB": "19/03/1984",
//     "gender": "male",
//     "country": "UK"
//   }
// }

success := CkJsonObject_LoadFile(json,'qa_data/json/people.json');
if (success = False) then
  begin
    Memo1.Lines.Add(CkJsonObject__lastErrorText(json));
    Exit;
  end;

// Swap the positions of Jon and Sara.
index1 := CkJsonObject_IndexOf(json,'Jon');
index2 := CkJsonObject_IndexOf(json,'Sara');
CkJsonObject_Swap(json,index1,index2);

// We have this now:
Memo1.Lines.Add(CkJsonObject__emit(json));

// {
//   "petter": {
//     "DOB": "26/02/1986",
//     "gender": "male",
//     "country": "US"
//   },
//   "Jon": {
//     "DOB": "19/03/1984",
//     "gender": "male",
//     "country": "UK"
//   },
//   "Sara": {
//     "DOB": "13/05/1982",
//     "gender": "female",
//     "country": "FR"
//   }
// }

// To swap an inner member:

jsonSara := CkJsonObject_Create();
CkJsonObject_ObjectOf2(json,'Sara',jsonSara);

index1 := CkJsonObject_IndexOf(jsonSara,'DOB');
index2 := CkJsonObject_IndexOf(jsonSara,'country');
CkJsonObject_Swap(jsonSara,index1,index2);

// We now have this:
Memo1.Lines.Add(CkJsonObject__emit(json));

// {
//   "petter": {
//     "DOB": "26/02/1986",
//     "gender": "male",
//     "country": "US"
//   },
//   "Jon": {
//     "DOB": "19/03/1984",
//     "gender": "male",
//     "country": "UK"
//   },
//   "Sara": {
//     "country": "FR",
//     "gender": "female",
//     "DOB": "13/05/1982"
//   }
// }

CkJsonObject_Dispose(json);
CkJsonObject_Dispose(jsonSara);

end;