Sample code for 30+ languages & platforms
PowerBuilder

Read/Write JSON with Binary Data such as JPEG Files

See more JSON Examples

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.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_Bd
oleobject loo_Json1
string ls_JsonStr
oleobject loo_Json2
oleobject loo_Bd2

li_Success = 0

// First load a small JPG file..
loo_Bd = create oleobject
li_rc = loo_Bd.ConnectToNewObject("Chilkat.BinData")
if li_rc < 0 then
    destroy loo_Bd
    MessageBox("Error","Connecting to COM object failed")
    return
end if

li_Success = loo_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.
loo_Json1 = create oleobject
li_rc = loo_Json1.ConnectToNewObject("Chilkat.JsonObject")

loo_Json1.UpdateBd("starfish","base64",loo_Bd)

ls_JsonStr = loo_Json1.Emit()
Write-Debug ls_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..
loo_Json2 = create oleobject
li_rc = loo_Json2.ConnectToNewObject("Chilkat.JsonObject")

loo_Json2.Load(ls_JsonStr)

// Get the binary bytes.
loo_Bd2 = create oleobject
li_rc = loo_Bd2.ConnectToNewObject("Chilkat.BinData")

loo_Json2.BytesOf("starfish","base64",loo_Bd2)

// Save to a file.
li_Success = loo_Bd2.WriteFile("qa_output/starfish20.jpg")

Write-Debug "Success."


destroy loo_Bd
destroy loo_Json1
destroy loo_Json2
destroy loo_Bd2