Sample code for 30+ languages & platforms
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

Tcl

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