Logo
By Glot Team

How to Convert JSON to YAML, CSV, and Other Formats Online

Different tools expect different formats. Here's how to switch between them without losing data or spending hours writing conversion scripts.

Translation files come in many formats depending on the platform and framework: .json for Vue and React, .yaml for Rails, .xml for Android, .strings for iOS, .arb for Flutter, .properties for Java, and .csv for spreadsheet-based translators. Converting between them is a recurring task that shouldn't require a custom script every single time.

This guide covers the most common conversion scenarios and explains what to watch for when switching formats.

JSON to YAML

JSON and YAML represent the same data model — key-value pairs, objects, arrays — but with very different syntax. JSON uses braces and brackets; YAML uses indentation and dashes.

Converting from JSON:

{
  "app": {
    "name": "Glot",
    "version": "2.0"
  }
}

To YAML:

app:
  name: Glot
  version: "2.0"

The main thing to watch: numbers that should stay strings (like version numbers) need quotes in YAML, otherwise they'll be parsed as numbers. A good converter handles this automatically.

YAML to JSON

Going the other direction is common when you're moving from a Rails-style locale file to a JavaScript framework. The key challenge is YAML's richer type system: booleans (true/yes ), null (~), multiline strings (|), and anchors/aliases (&/*) all need correct handling.

A reliable YAML-to-JSON converter will preserve your data types and alert you to any YAML features that don't have a direct JSON equivalent.

JSON to Android XML

Android uses a custom XML format for string resources. Each key becomes a <string> element with a name attribute:

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string name="app_name">Glot</string>
  <string name="welcome">Welcome back</string>
</resources>

The conversion flattens nested JSON keys using underscores (e.g., auth.login becomes auth_login). Android XML also has specific escaping rules for apostrophes and special characters — these must be handled correctly or your strings will break at render time.

JSON to iOS .strings

iOS localization uses .strings files with a simple "key" = "value"; format:

"app_name" = "Glot";
"welcome" = "Welcome back";
"onboarding_title" = "Get started";

Like Android XML, nested JSON keys are flattened. The format is straightforward but punctuation matters — every entry ends with a semicolon, and strings containing quotes must be escaped.

JSON to ARB (Flutter)

Flutter uses .arb files (Application Resource Bundle), which are JSON with a specific structure — each key has a corresponding @key metadata entry:

{
  "@@locale": "en",
  "appName": "Glot",
  "@appName": {
    "description": "Application name"
  }
}

Converting standard JSON to ARB requires generating the metadata entries. A proper converter handles this automatically, keeping your Flutter localization files valid.

JSON to CSV

CSV conversion is useful when you want to hand off translation work to non-technical translators who work in spreadsheets. A flat CSV with columns for key, source language, and target language is easy to distribute and collect.

The challenge is that JSON can be deeply nested. A good converter flattens the keys using dot notation (e.g., auth.login.button) so they remain identifiable in the spreadsheet.

Java .properties

Java applications use .properties files for localization — a simple key=value format, one per line, with # for comments:

# Application strings
app.name=Glot
welcome.message=Welcome back

Unicode characters above ASCII must be escaped using \\uXXXX notation in standard .properties files. A converter should handle this escaping correctly for non-English content.

Convert Any Format Online — Free

Glot's Format Converter supports all of these conversion directions in a single tool. Paste or upload your source file, select the target format, and download the result. Auto-detection figures out your source format automatically. Everything runs in your browser — no file uploads to any server.

It also supports two-way conversion between any supported format pair, so you can go from Android XML back to JSON, or from .strings to YAML, without any additional tooling.


Format conversion is one of those tasks that seems simple until you hit edge cases — special characters, nested structures, type differences between formats. A dedicated tool handles these correctly so you don't have to write and debug conversion scripts for every new project.

Convert Your Files Now — Free

JSON, YAML, CSV, Android XML, iOS .strings, ARB, Java .properties — all supported, all in your browser.

Open Format Converter