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

Swap JSON Objects

See more JSON Examples

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

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

set json [new_CkJsonObject]

CkJsonObject_put_EmitCompact $json 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"
#    }
#  }

set success [CkJsonObject_LoadFile $json "qa_data/json/people.json"]
if {$success == 0} then {
    puts [CkJsonObject_lastErrorText $json]
    delete_CkJsonObject $json
    exit
}

#  Swap the positions of Jon and Sara.
set index1 [CkJsonObject_IndexOf $json "Jon"]
set index2 [CkJsonObject_IndexOf $json "Sara"]
CkJsonObject_Swap $json $index1 $index2

#  We have this now:
puts [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:

set jsonSara [new_CkJsonObject]

CkJsonObject_ObjectOf2 $json "Sara" $jsonSara

set index1 [CkJsonObject_IndexOf $jsonSara "DOB"]
set index2 [CkJsonObject_IndexOf $jsonSara "country"]
CkJsonObject_Swap $jsonSara $index1 $index2

#  We now have this:
puts [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"
#    }
#  }

delete_CkJsonObject $json
delete_CkJsonObject $jsonSara