Sample code for 30+ languages & platforms
Delphi ActiveX Requires Chilkat v11.0.0+

Swap JSON Objects

See more JSON Examples

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

Chilkat Delphi ActiveX Downloads

Delphi ActiveX
var
success: Integer;
json: TChilkatJsonObject;
index1: Integer;
index2: Integer;
jsonSara: TChilkatJsonObject;

begin
success := 0;

json := TChilkatJsonObject.Create(Self);
json.EmitCompact := 0;

//  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 := json.LoadFile('qa_data/json/people.json');
if (success = 0) then
  begin
    Memo1.Lines.Add(json.LastErrorText);
    Exit;
  end;

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

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

//  {
//    "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 := TChilkatJsonObject.Create(Self);
json.ObjectOf2('Sara',jsonSara.ControlInterface);

index1 := jsonSara.IndexOf('DOB');
index2 := jsonSara.IndexOf('country');
jsonSara.Swap(index1,index2);

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

//  {
//    "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"
//    }
//  }