Donnerstag, 22 Dezember 2005

Schöner Syndizieren mit JSON

RSS kann sicherlich als der Standard angesehen werden, wenn es darum geht, Blog-Inhalte zu aggregieren und auszutauschen. Mit der JavaScript Object Notation (JSON) könnte jedoch in Zukunft eine interessante Alternative entstehen - und zwar vor allem dort, wo es darum geht, schnell und unproblematisch fremde Inhalte in die eigene Website einzubinden. Dank JSON ist man nämlich davon befreit, die RSS/XML-Daten zu konvertieren, bevor sie in die eigene Web-Seite passen.

Der Social Bookmarks Service del.icio.us macht vor, wie es funktioniert.

<script type="text/javascript" src="http://URL"></script>
<script type="text/javascript">
 function showImage(img){
  return (function(){ img.style.display='inline' })
 }

 var ul = document.createElement('ul')
 for (var i=0, post; post = Delicious.posts[i]; i++) {
  var li = document.createElement('li')
  var a = document.createElement('a')
  var br = document.createElement('br')
  a.style.marginLeft = '20px'
  a.style.color = '#258'
  a.style.textDecoration = 'none'
  var img = document.createElement('img')
  img.style.position = 'absolute'
  img.style.display = 'none'
  img.height = img.width = 16
  img.src = post.u.split('/').splice(0,3).join('/')+'/favicon.ico'
  img.onload = showImage(img);
  a.setAttribute('href', post.u)
  a.appendChild(document.createTextNode(post.d))
  li.appendChild(img)
  li.appendChild(a)
  li.appendChild(document.createTextNode(' - ' + post.n))
  ul.appendChild(li)
 }
 document.getElementById('container').appendChild(ul)
</script>

Der obenstehende JavaScript-Quelltext erzeugt eine Liste, die immer aktuell einen Bookmark-Feed bei del.icio.us wiedergibt. Anstelle von http://URL muss hier natürlich eine gültige URL stehen, also z.B. http://del.icio.us/feeds/json/perlkochbuch?count=5 für meinen eigenen Feed. Der Parameter count steuert die Anzahl der zurückgegeben Bookmarks.

Das Ergebnis sieht anschließend so aus:

Wen diese ganze Sache übrigens an AJAX erinnert, der liegt durchaus nicht falsch. Der einzige Unterschied besteht im wesentlichen darin, dass AJAX ein XML-Fragment in eine bestehende HTML-Seite einfügt - JSON nutz im Unterschied dazu eine Art standardisierte JavaScript-Datenstruktur. Was man sich darunter vorstellen muss, sieht man hier

Kommentare:

Kommentar schreiben




Angaben speichern?

(Sie dürfen HTML Tags zum Formattieren verwenden)