Hartmut Birkholz - Webdesign

Diese Seite schaut viel besser in einem Browser aus, der Web-Standards unterstützt, die Seite ist aber für jeden Browser geeignet. Trotzdem empfehle ich den Download z.B. des Firefox, Opera oder Internet Explorers.

JSON

JSON, kurz für JavaScript Object Notation und gesprochen wie der Name Jason, ist ein kompaktes Computer-Format in für Mensch und Maschine einfach lesbarer Textform, zum Zweck des Datenaustauschs zwischen Anwendungen.
Obwohl der Name auf eine alleinige Verwendung in JavaScript hindeutet, ist JSON ein unabhängiges Format, welches theoretisch in jeder Programmiersprache eingesetzt werden kann

PHP 5 bringt ein Modul mit, dass, weil es in C geschrieben ist, sehr performant arbeitet. Leider ist es nicht in allen Installationen vorhanden. Daher würde ich euch empfehlen zweigleisig zu fahren und eine Schnittstelle einzuführen, die bei Existenz der C-Funktion diese bevorzugt, bei Nichtexistenz aber eine andere verwendet.

Diese Schnittstelle sieht folgendermaßen aus:

JSON.class.php
  1. <?php
  2. require_once 'Services_JSON.php';
  3.  
  4. class JSON {
  5.         /**
  6.          * @param objekt -> PHP Objekt/Array/Variable
  7.          * @param force -> Benutzung von Service_JSON erzwingen
  8.          * @return -> JSON String
  9.          */
  10.         static public function encode($objekt, $force=false) {
  11.                 if(!function_exists('json_encode') || $force) {
  12.                         $tmp = new Services_JSON();
  13.                         return $tmp->encode($objekt)
  14.                 } else {
  15.                         return json_encode($objekt);
  16.                 }
  17.         }
  18.  
  19.         /**
  20.          * @param str -> JSON String
  21.          * @param force -> Benutzung von Service_JSON erzwingen
  22.          * @return -> PHP Objekt/Array/Variable
  23.          */
  24.         static public function decode($str, $force=false) {
  25.                 if(!function_exists('json_decode') || $force) {
  26.                         $tmp = new Services_JSON();
  27.                         return $tmp->decode($str)
  28.                 } else {
  29.                         return json_decode($str);
  30.                 }
  31.         }
  32. }
  33. ?>

Es verwendet Services_JSON, das unter der BSD Lizenz steht.

Nun zu einer Beispielimplementierung:

php-json.php
  1. <?php
  2. require_once 'JSON.class.php';
  3. class Ob {
  4.         public $arr = array("hans"=>"123", "peter"=>"456");
  5.         public $x = 5;
  6. }
  7.  
  8. $ob = new Ob();
  9. echo JSON::encode($ob);
  10. ?>

Ausgabe: {"arr":{"hans":"123","peter":"456"},"x":5}

Weblinks:
JSON-Entwicklungsseite (deutsch)
Wikipedia (deutsch)

 

<-- Scriptaculous folgt -->