misterunknown: json_decode liefert null

Moin,

zum gemeinsamen Bearbeiten eines HTML-Dokuments benutze ich Etherpad, welches die Daten in eine MySQL-Datenbank schreibt. Nun möchte ich die Seite auch live anzeigen lassen. Dazu habe ich mir ein PHP-Skript geschrieben welches die Daten aus der Datenbank holen und ausgeben soll. Eigentlich ist das keine große Sache, aber da der Text nicht direkt in einem Feld steht, sondern ein JSON-String muss ich selbigen decodieren. Die entsprechende PHP-Funktion liefert mir allerdings nur "NULL" zurück, obwohl der String valides JSON ist. Fehler werden nicht angezeigt.

<?php  
error_reporting(E_ALL);  
$db = mysqli_connect("localhost", "etherpad", "etherpad", "etherpad");  
  
$res = mysqli_query($db, "SELECT value FROM store WHERE `key` = 'pad:praesi'");  
$row = mysqli_fetch_assoc($res);  
  
print $row['value']; // gibt den korrekten, validen JSON-String aus  
  
var_dump(json_decode($row['value'])); // gibt NULL aus  
  
//$content = json_decode($row['value']);  
//print $content['text'];  
?>

Hat jemand eine Idee woran das liegen könnte?

Grüße Marco

--
Ich spreche Spaghetticode - fließend.
  1. Meine Herren!

    Die entsprechende PHP-Funktion liefert mir allerdings nur "NULL" zurück, obwohl der String valides JSON ist. Fehler werden nicht angezeigt.

    Kann ich mir nicht vorstellen, sicher dass das JSON valide ist?

    Typische Fehler:

    vergessene Anführungszeichen um eine benannte Eigenschaft:

    {  
       foo : "bar"  
    }
    

    richtig wäre

    {  
       "foo" : "bar"  
    }
    

    Oder ein abschließendes Komma in einer Liste:

    [ "foo", "bar", ]
    richtig wäre:
    [ "foo", "bar" ]

    --
    “All right, then, I'll go to hell.” – Huck Finn
    1. Moin,

      Kann ich mir nicht vorstellen, sicher dass das JSON valide ist?

      Ja, schon. Ich hab es durch verschiedene JSON-Validatoren gejagt und die waren alle zufrieden. Auch beim drüber gucken ist mir nichts aufgefallen, was PHP nicht schlucken würde. Hier ist mal der gesamte JSON String (direkt aus der Datenbank): Pastebin

      Grüße Marco

      --
      Ich spreche Spaghetticode - fließend.
  2. હેલો

    Hat jemand eine Idee woran das liegen könnte?

    An JSON in PHP.

    $_json = '{"wai"}';

    Ohne die Apostrophe kommt es zum Fehler mit „NULL“.

    $_json = <<<EOT  
    {"wai"}  
    EOT;
    

    führt zu „NULL“.

    બાય

    --
     .
    ..: