(C++) 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.
#include <CkBinData.h>
#include <CkJsonObject.h>
void ChilkatSample(void)
{
// First load a small JPG file..
CkBinData bd;
bool success = bd.LoadFile("qa_data/jpg/starfish20.jpg");
// Assume success, but your code should check for success..
// Create JSON containing the binary data in base64 format.
CkJsonObject json1;
json1.UpdateBd("starfish","base64",bd);
const char *jsonStr = json1.emit();
std::cout << jsonStr << "\r\n";
// 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..
CkJsonObject json2;
json2.Load(jsonStr);
// Get the binary bytes.
CkBinData bd2;
json2.BytesOf("starfish","base64",bd2);
// Save to a file.
success = bd2.WriteFile("qa_output/starfish20.jpg");
std::cout << "Success." << "\r\n";
}
|