Add your JSON file
Drop one or more .json files onto the converter above, or browse for them. They load into browser memory only — nothing is uploaded, so there is no size-based pricing and no server queue.
Restructuring .json data as .opml changes the serialization without touching the values themselves. Free, private, and validated — the file never leaves your browser.
Batch files can each use a different output. Nothing uploads for local conversions.
Working inputs include camera RAW, browser-local audio/video, PDF, CBZ/CBR comics, office documents, ebooks, markup, 3D models, structured text, images, and archives.Restructuring .json data as .opml changes the serialization without touching the values themselves. A .json file holds JavaScript Object Notation: nested objects, arrays, strings, numbers, booleans, and null written in a strict text syntax. It is the default data language of the web — most APIs speak nothing else.
An .opml file is an outline: nested <outline> elements inside a head/body document, where each node is an attribute bag rather than typed content. Its overwhelmingly common use is as the export and import format for a feed reader's subscription list. For this route the practical draw is the one universally accepted way to move feed subscriptions between readers and arbitrary nesting maps naturally onto folders and hierarchies — balanced against semantics are conventional, not specified — a general OPML consumer cannot exist, which is worth knowing before you commit a large batch.
The practical trigger for this conversion is usually a mismatch: with .json, no comments — a perpetual annoyance for configuration files. Switching to .opml buys you the one universally accepted way to move feed subscriptions between readers, which is why it is the better fit for exporting subscriptions from one feed reader and importing to another. Because the conversion runs locally, trying it costs nothing but a few seconds of compute on your own machine.
| Aspect | JSON data (.json) | OPML outline (.opml) |
|---|---|---|
| Format type | Text-based — characters and structure, so there is no visual quality loss | Text-based — characters and structure, so there is no visual quality loss |
| How it stores data | exactly six value types; no dates, no comments, no trailing commas — the strictness is deliberate | nodes are <outline> elements whose meaning comes entirely from their attributes, not from element names |
| Strongest at | rEST and HTTP API request and response payloads | exporting subscriptions from one feed reader and importing to another |
| Weak spot | no comments — a perpetual annoyance for configuration files | semantics are conventional, not specified — a general OPML consumer cannot exist |
Drop one or more .json files onto the converter above, or browse for them. They load into browser memory only — nothing is uploaded, so there is no size-based pricing and no server queue.
Select .opml in the output menu next to each file. The menu only offers targets this engine can genuinely produce, so if OPML is selectable, the route is real and validated.
Press Convert. The restructuring is plain local parsing — your data is never posted to a server for processing.
Each result is signature-checked before the download unlocks, so a failed encode can never masquerade as a valid OPML file. Outputs keep the original filename with the .opml extension.
There is no visual quality to lose — json is text-oriented and opml is text-oriented, so the question is structural fidelity. Text, ordering, and basic structure are preserved; complex layout, embedded objects, and styling beyond the target's model are simplified.
Yes — the .json file is processed inside your browser tab and never uploaded. The restructuring is plain local parsing — your data is never posted to a server for processing. Close the tab and the file is gone from memory.
Every feed reader imports and exports OPML subscription lists, and several outliners and mind-mapping tools read it. Outside those two niches it is rarely encountered. Novus Convert parses it locally and converts to JSON and CSV, flattening the hierarchy for inspection.
It depends on the content: nodes are <outline> elements whose meaning comes entirely from their attributes, not from element names. Convert one representative file first and compare before batch-processing a large set.
Yes — the reverse route exists as a separate tool. Bear in mind that round-tripping .json → .opml → .json is not a perfect undo when any lossy step is involved; keep your original if fidelity matters.