Tcl
Tcl
Sort JSON Object by Member Key Name
See more JSON Examples
Demonstrates how to sort the members of a JSON object by the key name.Chilkat Tcl Downloads
load ./chilkat.dll
set json [new_CkJsonObject]
CkJsonObject_UpdateString $json "xyz" "1234"
CkJsonObject_UpdateString $json "abc.xyz" "1234"
CkJsonObject_UpdateString $json "abc.def" "1234"
CkJsonObject_UpdateString $json "abc.aaa" "1234"
CkJsonObject_UpdateString $json "ghi" "1234"
CkJsonObject_UpdateString $json "nmo" "1234"
CkJsonObject_put_EmitCompact $json 0
puts [CkJsonObject_emit $json]
# This is our initial JSON:
# {
# "xyz": "1234",
# "abc": {
# "xyz": "1234",
# "def": "1234",
# "aaa": "1234"
# },
# "ghi": "1234",
# "nmo": "1234"
# }
# Sort the top-level JSON object by key.
set ascending 1
set caseSensitive 1
CkJsonObject_Sort $json $ascending $caseSensitive
# Look at the sorted JSON..
puts [CkJsonObject_emit $json]
# {
# "abc": {
# "xyz": "1234",
# "def": "1234",
# "aaa": "1234"
# },
# "ghi": "1234",
# "nmo": "1234",
# "xyz": "1234"
# }
# Now sort the members of the "abc" object..
set jsonAbc [new_CkJsonObject]
CkJsonObject_ObjectOf2 $json "abc" $jsonAbc
CkJsonObject_Sort $jsonAbc $ascending $caseSensitive
# Now look at the JSON with the members under "abc" also sorted..
puts [CkJsonObject_emit $json]
# {
# "abc": {
# "aaa": "1234",
# "def": "1234",
# "xyz": "1234"
# },
# "ghi": "1234",
# "nmo": "1234",
# "xyz": "1234"
# }
delete_CkJsonObject $json
delete_CkJsonObject $jsonAbc