Free online JSON to SAV converter
Convert tabular JSON records into an SPSS-compatible SAV dataset with Python or 101convert.
Convert JSON to SAV online - free
Your file is processed instantly and deleted as soon as you download it.
Import a file from a URL
Paste a direct link to the file. We download it to our server and it is converted exactly like an upload.
How it works
-
1/3
Upload your .json file
Click to browse to select your file you want to convert or simply drag & drop your file into selected area.
-
2/3
Perform .json to .sav conversion
After successful file upload, click to convert when you are ready.
-
3/3
Download converted .sav file
Conversion result is ready to download.
How to convert json to sav file
- Databases
- No ratings yet.
101convert.com assistant bot
15m
What the JSON format is
JSON is a UTF-8 text format built from objects, arrays, strings, numbers, booleans, and null values. Web applications, REST APIs, data pipelines, NoSQL databases, and database export tools commonly create JSON files; a typical dataset is an array of objects such as one object per respondent or transaction.
JSON does not require every object to have the same fields, and fields can contain nested objects or arrays. That flexibility is useful for interchange but does not directly match the rectangular rows-and-columns model expected by statistical software.
What the SAV format is
SAV is the IBM SPSS Statistics system data format. It stores rectangular records together with metadata such as variable names, variable labels, value labels, measurement levels, missing-value definitions, formats, and character encodings.
SPSS, PSPP, R packages such as haven, and Python libraries based on ReadStat can read SAV files. SAV is suitable when the recipient needs SPSS-compatible metadata or statistical analysis rather than a human-readable text export; it is not a general-purpose relational database format.
How to actually convert JSON to SAV
Convert with Python
Python is the most controllable option when the JSON contains arrays, nested fields, nulls, dates, or values that need type cleanup. Install the required packages:
python -m pip install pandas pyreadstatSave the following as json_to_sav.py. It expects either a top-level JSON array or an object containing a records array.
import json
import pandas as pd
import pyreadstat
with open("input.json", encoding="utf-8") as file:
data = json.load(file)
if isinstance(data, dict) and isinstance(data.get("records"), list):
data = data["records"]
if not isinstance(data, list) or not all(isinstance(row, dict) for row in data):
raise ValueError("Expected a JSON array of objects or an object with a records array")
df = pd.json_normalize(data, sep="_")
pyreadstat.write_sav(df, "output.sav")Run it with:
python json_to_sav.pypd.json_normalize turns nested paths into column names such as address_city. If the JSON uses another wrapper key, replace records with that key. If it contains a single object rather than records, identify which properties represent rows before converting.
Convert without installing software
You can convert the file for free on the 101convert.com website by uploading the JSON, choosing SAV as the output format, and downloading the generated file. Inspect the result in SPSS or PSPP, especially when the source contains nested data or mixed types.
Quality and compatibility considerations
- Flattening is a data decision: nested objects become separate columns, while arrays require a rule such as one row per array item, joined text, or separate related tables. A converter cannot infer the correct relational structure in every case.
- Mixed JSON types need cleanup: a column containing numbers, strings, and nulls may become a character variable or lose values during type inference. Convert each column deliberately in pandas before writing the SAV file.
- Dates are not automatically statistical dates: parse ISO date strings and assign the intended SPSS date or datetime representation if date calculations are required. Otherwise they remain ordinary character columns.
- Metadata is usually absent from JSON: variable labels, value labels, measurement levels, and user-missing values must be supplied separately. The conversion preserves values more reliably than it can reconstruct statistical meaning.
- Check names and lengths: use simple, unique column names compatible with the target SPSS version. Long names, punctuation, duplicate keys, and names beginning with unsupported characters may be changed or rejected.
- Validate the output: reopen
output.savwith SPSS, PSPP, orpyreadstat.read_sav, then compare row counts, column counts, null handling, date values, and representative records with the source JSON.
Note: This json to sav conversion record is incomplete, must be verified, and may contain inaccuracies. Please vote below whether you found this information helpful or not.
Frequently asked questions
Is the JSON to SAV converter free?
Yes, converting JSON to SAV on 101convert.com is completely free. No registration, email address or installation is required. If you need a higher file size limit or want to convert more files at once, see our plans.
How large can my JSON file be?
You can upload JSON files up to 300 MB and convert up to 20 files at once in a single batch.
What happens to my uploaded files?
Files are processed automatically and deleted from our servers within a few minutes after conversion. We never view or share your files.
Do I need to install any software to convert JSON to SAV?
No. The JSON to SAV conversion runs entirely online in your browser and works on Windows, Mac, Linux, Android and iPhone.
Did the conversion fail?
In most cases, the cause is an incorrect file format. Please upload a valid JSON file for this JSON to SAV conversion. Occasionally, the issue may be on our side. We analyze recurring conversion failures and disable or fix the converter if we detect a defect.