Tcl
Tcl
JSON: Miscellaneous Operations
See more JSON Examples
Demonstrates a variety of JSON API methods. This example uses the following JSON document:
{
"alphabet": "abcdefghijklmnopqrstuvwxyz",
"sampleData" : {
"pi": 3.14,
"apple": "juicy",
"hungry": true,
"withoutValue": null,
"answer": 42
}
}
Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
set json [new_CkJsonObject]
CkJsonObject_put_EmitCompact $json 0
# Assume the file contains the data as shown above..
set success [CkJsonObject_LoadFile $json "qa_data/json/sample2.json"]
if {$success == 0} then {
puts [CkJsonObject_lastErrorText $json]
delete_CkJsonObject $json
exit
}
# Get the "sampleData" object:
set sampleData [new_CkJsonObject]
CkJsonObject_ObjectOf2 $json "sampleData" $sampleData
# Demonstrate BoolAt and BoolOf
puts "hungry: [CkJsonObject_BoolOf $sampleData hungry]"
puts "hungry: [CkJsonObject_BoolAt $sampleData 2]"
# StringOf returns the value as a string regardless of it's actual type:
puts "pi: [CkJsonObject_stringOf $sampleData pi]"
puts "answer: [CkJsonObject_stringOf $sampleData answer]"
puts "withoutValue: [CkJsonObject_stringOf $sampleData withoutValue]"
puts "hungry: [CkJsonObject_stringOf $sampleData hungry]"
# Demonstrate IsNullOf / IsNullAt
puts "withoutValue is null? [CkJsonObject_IsNullOf $sampleData withoutValue]"
puts "withoutValue is null? [CkJsonObject_IsNullAt $sampleData 3]"
puts "apple is null? [CkJsonObject_IsNullOf $sampleData apple]"
puts "apple is null? [CkJsonObject_IsNullAt $sampleData 1]"
# IntOf
puts "answer: [CkJsonObject_IntOf $sampleData answer]"
# SetNullAt, SetNullOf
# Set "pi" to null
set success [CkJsonObject_SetNullAt $sampleData 0]
# Set "answer" to null
set success [CkJsonObject_SetNullOf $sampleData "answer"]
# Show the changes:
puts [CkJsonObject_emit $json]
# Restore pi and apple:
set success [CkJsonObject_SetNumberAt $sampleData 0 "3.14"]
set success [CkJsonObject_SetNumberOf $sampleData "answer" "42"]
# Show the changes:
puts [CkJsonObject_emit $json]
# Add a null value named "afterApple" just after "apple"
set success [CkJsonObject_AddNullAt $sampleData 2 "afterApple"]
# Add a boolean value just after "pi"
set success [CkJsonObject_AddBoolAt $sampleData 1 "afterPi" 0]
# Examine the changes..
puts [CkJsonObject_emit $json]
delete_CkJsonObject $json
delete_CkJsonObject $sampleData