Converters
RSS to JSON Converter
Turn any RSS feed into clean JSON — channel metadata and an items array, ready for your app or script.
In short
Convert RSS to JSON online: paste a feed or load its URL and get clean JSON with channel metadata and an items array. Free, instant, client-side.
By NaveenKumar T · Updated
Learn: XML Namespaces Explained: Prefixes, Default Namespaces and Common Errors
- Instant in-browser conversion
- Validates input first
- Load feeds directly from a URL
Runs entirely in your browser — nothing you paste or open here is uploaded, logged, or stored.How we handle data →
Example
RSS to JSON: input and output
A minimal podcast feed with two episodes: each item has a guid with an attribute, an RFC 822 pubDate and an attribute-only enclosure, and the first carries an HTML description inside CDATA.
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>Night Shift Radio</title>
<link>https://nightshift.example.fm</link>
<item>
<title>Ep. 12: The bakery at 4am</title>
<guid isPermaLink="false">nsr-012</guid>
<pubDate>Tue, 02 Jun 2026 05:00:00 GMT</pubDate>
<enclosure url="https://cdn.example.fm/nsr-012.mp3" length="28311552" type="audio/mpeg"/>
<description><![CDATA[<p>We visit a <b>24-hour</b> bakery.</p>]]></description>
</item>
<item>
<title>Ep. 13: Night nurses</title>
<guid isPermaLink="false">nsr-013</guid>
<pubDate>Tue, 09 Jun 2026 05:00:00 GMT</pubDate>
<enclosure url="https://cdn.example.fm/nsr-013.mp3" length="30105600" type="audio/mpeg"/>
</item>
</channel>
</rss>{
"rss": {
"channel": {
"title": "Night Shift Radio",
"link": "https://nightshift.example.fm",
"item": [
{
"title": "Ep. 12: The bakery at 4am",
"guid": {
"#text": "nsr-012",
"@isPermaLink": false
},
"pubDate": "Tue, 02 Jun 2026 05:00:00 GMT",
"enclosure": {
"@url": "https://cdn.example.fm/nsr-012.mp3",
"@length": 28311552,
"@type": "audio/mpeg"
},
"description": "<p>We visit a <b>24-hour</b> bakery.</p>"
},
{
"title": "Ep. 13: Night nurses",
"guid": {
"#text": "nsr-013",
"@isPermaLink": false
},
"pubDate": "Tue, 09 Jun 2026 05:00:00 GMT",
"enclosure": {
"@url": "https://cdn.example.fm/nsr-013.mp3",
"@length": 30105600,
"@type": "audio/mpeg"
}
}
]
},
"@version": 2
}
}channel.item is a two-element array. Each enclosure became an object of @url, @length (typed as a number) and @type; the guid's isPermaLink="false" parsed to the boolean false beside a #text key; the CDATA wrapper was stripped, leaving the HTML as a plain string; and the declaration surfaces as a ?xml key at the top, which you can ignore.
Learn more
How RSS to JSON conversion works
RSS is XML with a fixed vocabulary, and the converter exploits that: the result is JSON with rss.channel carrying the feed metadata (title, link, description) and channel.item as an array of entries — each with its title, link, pubDate, and any namespaced extras the feed includes. Attributes like version are preserved with an @ prefix.
Feeds with a single entry still produce predictable output; entries with HTML in their descriptions arrive as escaped strings you can render or strip downstream.
When to convert RSS to JSON
Building anything that consumes feeds — a news widget, a podcast directory, a content aggregator — means turning RSS into objects your code can map over. Paste a feed here (or fetch its URL directly) to see exactly what structure you'll receive, prototype against real data, or do one-off extractions like 'give me every episode title' with the JSON tools one click away.
Help
Frequently asked questions
Everything you need to know about the RSS to JSON.
01Can I load a feed directly from its URL instead of pasting the XML?
Loading a feed straight from its URL works on this page — enter the address and the converter fetches and parses it directly, faster than copying XML by hand for a large feed. The fetch runs from your own browser, so it only succeeds when the feed's server sends CORS headers allowing cross-origin requests; a feed that blocks this needs its XML pasted in manually instead.
02Why is channel.item sometimes an object instead of an array?
When a feed contains exactly one entry, repeated-element detection has nothing to repeat, so item parses as a single object. Robust consumers wrap it: Array.isArray(item) ? item : [item]. Multi-entry feeds always produce a proper array.
03How are enclosures, guid attributes, CDATA descriptions, and dates represented?
<enclosure url="…" length="1234" type="audio/mpeg"/> is an attribute-only element, so it becomes an object of @url, @length (typed as a number) and @type. <guid isPermaLink="false">…</guid> has both an attribute and text, giving {"@isPermaLink": false, "#text": "…"}. CDATA wrappers are stripped and the HTML inside kept as a plain string. pubDate and lastBuildDate stay strings in their RFC 822 form — nothing is converted to a Date — and namespaced tags such as itunes:duration keep the prefix in the key name.
Keep working
Related tools
XML to JSON
Converters
JSON Formatter
Format, beautify, and validate JSON instantly in a professional VS Code-style editor — free, fast, and 100% private.
JSON Viewer
Explore any JSON document in an interactive, collapsible tree — keys, types, and counts at a glance, with code view one click away.
CSV to JSON
Converters
JSON to CSV
Converters
JSON to TOML
Converters