How to convert Base64 to a JSON string in Java

1 Answer

0 votes
import java.util.Base64;

public class Base64ToJson {
    public static void main(String[] args) {
        String base64String = "ewogICJ1c2VybmFtZSI6ICJPa2FiZSIsCiAgImFnZSI6IDM3Cn0=";
        try {
            // Decode Base64 to plain text
            byte[] decodedBytes = Base64.getDecoder().decode(base64String);
            String decodedString = new String(decodedBytes);

            // Since we can't use external JSON libraries, just pretty-print manually
            String jsonString = prettyPrintJson(decodedString);

            System.out.println("JSON String:\n" + jsonString);
        } catch (Exception e) {
            System.err.println("Error converting Base64 to JSON: " + e.getMessage());
        }
    }

    // Very basic pretty printer for JSON-like strings
    private static String prettyPrintJson(String json) {
        StringBuilder pretty = new StringBuilder();
        int indent = 0;
        boolean inQuotes = false;

        for (char c : json.toCharArray()) {
            switch (c) {
                case '{':
                case '[':
                    pretty.append(c);
                    indent++;
                    break;
                case '}':
                case ']':
                    indent--;
                    pretty.append(c);
                    break;
                case ',':
                    pretty.append(c);
                    break;
                case '"':
                    pretty.append(c);
                    inQuotes = !inQuotes;
                    break;
                case ':':
                    pretty.append(":");
                    break;
                default:
                    pretty.append(c);
            }
        }
        return pretty.toString();
    }
}

 
 
/*
run:
 
JSON String:
{
  "username": "Okabe",
  "age": 37
}
 
*/

 

 



answered Dec 8, 2025 by avibootz
...