JSON-RSS

Aus Imperia Support Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Idee: Ein Nachrichtenaustauschformat analog zu RSS, aber leichtgewichtiger zu parsen.

Implemenation: JSON-RSS

Datei-Endung: .jrss

MIME-Type: application/rss+json

Codebeispiel:

{
    "version":"2.0",
    "channel":
    {
        "title":"TITLE",
        "link":"http:\/\/example.com\/",
        "description":"A test",
        "lastBuildDate":"Mon, 04 Aug 2011 16:50:00 +0000",
        "pubDate":"Mon, 04 Aug 2011 16:45:00 +0000",
        "items":
        [
            {
                "guid":"1",
                "title":"Example entry",
                "link":"http:\/\/example.com\/test",
                "description":"This test<br />contains HTML.",
                "pubDate":"Mon, 04 Aug 2011 16:45:00 +0000",
                "enclosure":
                {
                    "url":"http:\/\/example.com\/file.mp3",
                    "length":"123456789",
                    "type":"audio\/mpeg"
                }
                "categories":
                [
                    "test"
                ]
            },
            {
                "guid":"2",
                "title":"Another example entry",
                "link":"This test does not contain HTML.",
                "description":"http:\/\/example.com\/another_test",
                "pubDate":"Mon, 04 Aug 2011 17:25:00 +0000"
            }
        ]
    }
}

Besonderheiten sind:

  • Die RSS-Versionsnummer wird eine eigenständige Eigenschaft
  • <guid> wird immer angenommen mit isPermalink="false"

Es gibt generelle Regeln zum Umformen von XML in JSON.

Generierung per PHP z.B.

<?php

    $rss = (object)array(
        'version' => '2.0',
        'channel' => (object)array(
            'title' => 'TITLE',
            'link' => 'http://example.com/',
            'description' => 'A test',
            'lastBuildDate' => 'Mon, 04 Aug 2011 16:50:00 +0000',
            'pubDate' => 'Mon, 04 Aug 2011 16:45:00 +0000',
            'items' => array(
                (object)array(
                    'guid' => '1',
                    'title' => 'Example entry',
                    'link' => 'http://example.com/test',
                    'description' => 'This test<br />contains HTML.',
                    'pubDate' => 'Mon, 04 Aug 2011 16:45:00 +0000',
                    'enclosure' => (object)array(
                        'url'=>'http://example.com/file.mp3',
                        'length'=>'123456789',
                        'type'=>'audio/mpeg',
                    ),
                    'categories' => array('test'),
                ),
                (object)array(
                    'guid' => '2',
                    'title' => 'Another example entry',
                    'link' => 'This test does not contain HTML.',
                    'description' => 'http://example.com/another_test',
                    'pubDate' => 'Mon, 04 Aug 2011 17:25:00 +0000',
                ),
            ),
        ),
    );
    
    echo(json_encode($rss));

?>