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