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

Tcl

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