How to convert Base64 to a JSON string in Swift

1 Answer

0 votes
import Foundation

func base64ToPrettyJSON(_ base64String: String) -> String {
    do {
        // Decode Base64 to plain text
        guard let decodedData = Data(base64Encoded: base64String) else {
            throw NSError(domain: "InvalidBase64", code: 0, userInfo: nil)
        }

        // Parse plain text to JSON
        if let jsonObject = try JSONSerialization.jsonObject(with: decodedData, options: []) as? [String: Any] {
            // Convert JSON object to pretty JSON string
            let prettyData = try JSONSerialization.data(withJSONObject: jsonObject, options: [.prettyPrinted])
            if let jsonString = String(data: prettyData, encoding: .utf8) {
                return "JSON String:\n\(jsonString)"
            }
        }
        return "Error: Could not convert JSON object to string"
    } catch {
        return "Error converting Base64 to JSON: \(error.localizedDescription)"
    }
}

let base64String = "ewogICJ1c2VybmFtZSI6ICJPa2FiZSIsCiAgImFnZSI6IDM3Cn0="

print(base64ToPrettyJSON(base64String))



/* run:

JSON String:
{
  "username" : "Okabe",
  "age" : 37
}

*/

 



answered Dec 8, 2025 by avibootz
edited Dec 8, 2025 by avibootz
...