Tcl
Tcl
JSON Copy Objects
See more JSON Examples
Copy objects from one JSON document to another.Chilkat Tcl Downloads
load ./chilkat.dll
set json1 [new_CkJsonObject]
CkJsonObject_UpdateString $json1 "ID1.cn" "Name"
CkJsonObject_UpdateString $json1 "ID1.objectGUID" "GUID"
CkJsonObject_UpdateString $json1 "ID2.cn" "Name"
CkJsonObject_UpdateString $json1 "ID2.objectGUID" "GUID"
CkJsonObject_put_EmitCompact $json1 0
puts [CkJsonObject_emit $json1]
# json1 contains:
# {
# "ID1": {
# "cn": "Name",
# "objectGUID": "GUID"
# },
# "ID2": {
# "cn": "Name",
# "objectGUID": "GUID"
# }
# }
set json2 [new_CkJsonObject]
CkJsonObject_UpdateString $json2 "Name1.ID1.cn" "Name"
CkJsonObject_UpdateString $json2 "Name1.ID1.objectGUID" "GUID"
CkJsonObject_UpdateString $json2 "Name1.ID2.cn" "Name"
CkJsonObject_UpdateString $json2 "Name1.ID2.objectGUID" "GUID"
CkJsonObject_UpdateString $json2 "Name2.ID3.cn" "Name"
CkJsonObject_UpdateString $json2 "Name2.ID3.objectGUID" "GUID"
CkJsonObject_put_EmitCompact $json2 0
puts [CkJsonObject_emit $json2]
# {
# "Name1": {
# "ID1": {
# "cn": "Name",
# "objectGUID": "GUID"
# },
# "ID2": {
# "cn": "Name",
# "objectGUID": "GUID"
# }
# },
# "Name2": {
# "ID3": {
# "cn": "Name",
# "objectGUID": "GUID"
# }
# }
# }
# Copy Name1, Name2 into json1
set i 0
set numMembers [CkJsonObject_get_Size $json2]
while {$i < $numMembers} {
# jsonObj is a CkJsonObject
set jsonObj [CkJsonObject_ObjectAt $json2 $i]
CkJsonObject_AppendObjectCopy $json1 [CkJsonObject_nameAt $json2 $i] $jsonObj
set i [expr $i + 1]
}
# Now see what json1 contains:
puts [CkJsonObject_emit $json1]
# {
# "ID1": {
# "cn": "Name",
# "objectGUID": "GUID"
# },
# "ID2": {
# "cn": "Name",
# "objectGUID": "GUID"
# },
# "Name1": {
# "ID1": {
# "cn": "Name",
# "objectGUID": "GUID"
# },
# "ID2": {
# "cn": "Name",
# "objectGUID": "GUID"
# }
# },
# "Name2": {
# "ID3": {
# "cn": "Name",
# "objectGUID": "GUID"
# }
# }
# }
delete_CkJsonObject $json1
delete_CkJsonObject $json2