Sample code for 30+ languages & platforms
Android™

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 Android™ Downloads

Android™
// Important: Don't forget to include the call to System.loadLibrary
// as shown at the bottom of this code sample.
package com.test;

import android.app.Activity;
import com.chilkatsoft.*;

import android.widget.TextView;
import android.os.Bundle;

public class SimpleActivity extends Activity {

  private static final String TAG = "Chilkat";

  // Called when the activity is first created.
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    boolean success = false;

    // First load a small JPG file..
    CkBinData bd = new CkBinData();

    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 = new CkJsonObject();
    json1.UpdateBd("starfish","base64",bd);

    String jsonStr = json1.emit();
    Log.i(TAG, 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..
    CkJsonObject json2 = new CkJsonObject();
    json2.Load(jsonStr);

    // Get the binary bytes.
    CkBinData bd2 = new CkBinData();
    json2.BytesOf("starfish","base64",bd2);

    // Save to a file.
    success = bd2.WriteFile("qa_output/starfish20.jpg");

    Log.i(TAG, "Success.");

  }

  static {
      System.loadLibrary("chilkat");

      // Note: If the incorrect library name is passed to System.loadLibrary,
      // then you will see the following error message at application startup:
      //"The application <your-application-name> has stopped unexpectedly. Please try again."
  }
}