Tcl
Tcl
Swap JSON Objects
See more JSON Examples
Demonstrates how to swap two JSON objects within a JSON document.Chilkat Tcl Downloads
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