Tcl
Tcl
Create more Complex JSON Document
See more JSON Examples
Sample code to create the following JSON document:
{
"Title": "The Cuckoo's Calling",
"Author": "Robert Galbraith",
"Genre": "classic crime novel",
"Detail": {
"Publisher": "Little Brown",
"Publication_Year": 2013,
"ISBN-13": 9781408704004,
"Language": "English",
"Pages": 494
},
"Price": [
{
"type": "Hardcover",
"price": 16.65
},
{
"type": "Kindle Edition",
"price": 7.00
}
]
}
Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
set json [new_CkJsonObject]
# The only reason for failure in the following lines of code would be an out-of-memory condition..
# An index value of -1 is used to append at the end.
set index -1
set success [CkJsonObject_AddStringAt $json -1 "Title" "The Cuckoo's Calling"]
set success [CkJsonObject_AddStringAt $json -1 "Author" "Robert Galbraith"]
set success [CkJsonObject_AddStringAt $json -1 "Genre" "classic crime novel"]
# Let's create the Detail JSON object:
set detail [new_CkJsonObject]
CkJsonObject_AppendObject2 $json "Detail" $detail
set success [CkJsonObject_AddStringAt $detail -1 "Publisher" "Little Brown"]
set success [CkJsonObject_AddIntAt $detail -1 "Publication_Year" 2013]
set success [CkJsonObject_AddNumberAt $detail -1 "ISBN-13" "9781408704004"]
set success [CkJsonObject_AddStringAt $detail -1 "Language" "English"]
set success [CkJsonObject_AddIntAt $detail -1 "Pages" 494]
# Add the array for Price
set aPrice [new_CkJsonArray]
CkJsonObject_AppendArray2 $json "Price" $aPrice
# Entry in aPrice will be a JSON object.
# Append a new/empty ojbect to the end of the aPrice array.
set priceObj [new_CkJsonObject]
CkJsonArray_AddObjectAt2 $aPrice -1 $priceObj
set success [CkJsonObject_AddStringAt $priceObj -1 "type" "Hardcover"]
set success [CkJsonObject_AddNumberAt $priceObj -1 "price" "16.65"]
CkJsonArray_AddObjectAt2 $aPrice -1 $priceObj
set success [CkJsonObject_AddStringAt $priceObj -1 "type" "Kindle Edition"]
set success [CkJsonObject_AddNumberAt $priceObj -1 "price" "7.00"]
CkJsonObject_put_EmitCompact $json 0
puts [CkJsonObject_emit $json]
delete_CkJsonObject $json
delete_CkJsonObject $detail
delete_CkJsonArray $aPrice
delete_CkJsonObject $priceObj