Why convert ASEPRITE to JSON?
Game engines and frameworks like Phaser, PixiJS, and Unity need frame coordinates and animation metadata, not just an image. Exporting to .json gives them a machine-readable atlas mapping each frame and tag inside the accompanying sprite sheet, which is why this pairs the PNG with a data file.
How to convert ASEPRITE to JSON
Export Sprite Sheet dialog EASIEST
Choose File > Export > Export Sprite Sheet, enable the JSON Data checkbox, and pick a data filename. Aseprite writes the sheet PNG plus the .json atlas.
Aseprite CLI
Run aseprite -b sprite.aseprite --sheet sheet.png --data sheet.json --format json-hash to generate the atlas headlessly; use --format json-array for an ordered list.
Aseprite CLI to stdout
Use aseprite -b --data="" sprite.aseprite to print the JSON directly to the console for scripting or piping into a build step.
About these formats
An .aseprite file is the native project format of Aseprite, an animated sprite editor and pixel art tool. It keeps a sprite's full editable state including layers, frames, palette, tags and…
Open .ASEPRITE details →A JSON file is a plain-text data file in JavaScript Object Notation format, used by web APIs, app configurations, and data exports. Any text editor opens it - Notepad on Windows, TextEdit…
Open .JSON details →Quality & what to watch
- The JSON does not contain the pixels - it only describes frames, so you must keep the exported sheet PNG alongside it.
- The
--formatchoice matters:json-hashkeys frames by name,json-arraygives an ordered list; engines expect one or the other. - Tag, slice, and duration metadata is included only if your sprite actually defines them.
Frequently asked questions
Does the JSON include the image data?
What is the difference between json-hash and json-array?
json-hash keys each frame by filename; json-array returns an ordered list. Pick the one your engine's loader expects.Can I automate this without opening the app?
-b batch flag with --sheet and --data runs headlessly in build scripts.