(Tcl) Read/Write JSON with Binary Data such as JPEG Files
Demonstrates how binary files could be stored in JSON in base64 format. Creates JSON containing the contents of a JPG file, and then reads the JSON to extract the JPEG image.
load ./chilkat.dll
# First load a small JPG file..
set bd [new_CkBinData]
set success [CkBinData_LoadFile $bd "qa_data/jpg/starfish20.jpg"]
# Assume success, but your code should check for success..
# Create JSON containing the binary data in base64 format.
set json1 [new_CkJsonObject]
CkJsonObject_UpdateBd $json1 "starfish" "base64" $bd
set jsonStr [CkJsonObject_emit $json1]
puts "$jsonStr"
# Here's the output:
# {"starfish":"/9j/4AAQSkZJRgA ... cN2iuLFsCEbDGxQkI6RO/n//2Q=="}
# Let's create a new JSON object, load it with the above JSON, and extract the JPG image..
set json2 [new_CkJsonObject]
CkJsonObject_Load $json2 $jsonStr
# Get the binary bytes.
set bd2 [new_CkBinData]
CkJsonObject_BytesOf $json2 "starfish" "base64" $bd2
# Save to a file.
set success [CkBinData_WriteFile $bd2 "qa_output/starfish20.jpg"]
puts "Success."
delete_CkBinData $bd
delete_CkJsonObject $json1
delete_CkJsonObject $json2
delete_CkBinData $bd2
|