0 - Error decoding JSON data: Syntax error

  • Hallo, ich habe das gleiche Problem, nur leider im Backend. Es ist durch die Fehlermeldung blockiert.
    Die Seite ist eine von 1.5 auf 2.5 und dann auf 3 migrierte alte Website und offenbar wurde da etwas mitgeschleift, was jetzt zu diesem Fehler führt.
    Wenn ich dem Workaround "libraris > vendor > Joomla" zurück auf 3.6.2 stellen folge, wie hier beschrieben (http://www.joomlaportal.de/joo…-3-6-3-a.html#post1630268), was passiert nächste Woche beim Sicherheitsupdate oder bei all den kommenden Core-Updates?
    Ich bin da sehr unsicher :( Kann das eine dauerhafte Lösung sein?
    Ich betreue einige solcher alten, mehrfach migrierten Installationen und befürchte, dass diese Lösung nicht wirkllich die Ursache beseitigt.
    Danke
    Sabine22

  • @Sabine22 und andere ""Zweifler"":


    Die Anleitung enthält ein "Hilfe, schnell wieder zurück!" (Umbenennung des Original 3.6.3-Ordners zu joomla_bak). Was spricht dagegen den vor zukünftigem Update wieder zurückzubenennen? Oder einfach im Update-Paket nachzusehen, ob die beiden Dateien nicht sowieso erneuert werden?


    Bleiben folgende Möglichkeiten:
    - Auf 3.6.2 bleiben.
    - - Ich sehe nicht, dass > 3.6.3 diesen JSON-Punkt irgendwie lösen wird, soweit der Fehler nicht aus Joomla-Core kommt. Und dann werden die Fehler, an anderer Stelle repariert, damit die Fehlermeldung gar nicht ausgegeben werden muss. Die Fehlermeldung ist richtig. Klingt komisch, ist aber so.
    - - Also, bring in Erfahrung, indem du Debugging aktivierst, welche Erweiterung an welcher Stelle Ursache für den Abbruch ist. Sollte es Joomla-Core sein, reiche das z.B. auf Github ein, damit es gefixt wird. Aber: Sollte es eine zuinstallierte Erweiterung sein, wende dich an die Programmierer derselben, damit sie das durch Update der Erweiterung fixen. Mindestens bei einer ist das schon passiert.
    - - Poste die Fehlermeldung und StackTrace hier. Können auch andere mal schaun.


    - Auf unbedienbarem 3.6.3 bleiben. Wenn das Backend noch funktioniert, durch Deaktivieren von Erweiterungen rausbekommen, welche Schuld ist. "Profis" mit Überblick über ihre Seiten schaffen das evtl. auch via Datenbank, falls Backend ebenfalls geschrottet.
    -- Weitere Fehlerquelle nach bisherigen Meldungen: Vielleicht ist auch jUpgrade schuld. Bin ich nicht so orientiert. Geistern aber schon erste Fixes rum, die mal klappen, mal nicht. Aber: Alle meine mit diesem Tool seinerzeit upgedateten Joomlas ließen sich problemlos auf 3.6.3 schieben.


    - Den Fix ausprobieren, Zettelchen schreiben, dass man vor 3.6.4 dran denken sollte, dass...


    Vorher wurde an dieser Stelle einfach keine Fehlermeldung ausgegeben, jetzt DANKBARERWEISE (aus der Sicht von Programmierern) schon. Mein Fix macht nicht mehr als die Fehlermeldung zu unterdrücken, damit man weiterarbeiten kann! Deshalb ist der Fehler trotzdem da, führt halt nur nicht zum Abbruch.


    Kurz: Beteiligt euch an der Fehlersuche, egal, ob Joomla-Core oder 3rd-Erweiterungen. Postet Eure vollständigen Fehlermeldungen und StackTraces-Ausgaben, damit andere Euren Job tun. Alles andere ist Ping-Pong-Pillepalle. Und eine Garantieerklärung werde ich für den Fix nicht unterschreiben. Das kostet dann ;) (inklusive Fehlersuche).

  • Hallo zusammen,
    das


    /libraries/vendor/joomla/
    umbenennen (zur Sicherheit):
    /libraries/vendor/joomla_bak/


    Dann aus dem Joomla-3.6.2-Paket
    /libraries/vendor/joomla/
    rüberkopieren nach 3.6.3


    Dabei werden 2 Dateien auf alten Stand 3.6.2 zurückgesetzt.
    \libraries\vendor\joomla\registry\src\Format\Json. php
    \libraries\vendor\joomla\registry\src\Registry.php


    wie im von Christine (dankeee) geposteten Link beschriebenen Lösungsvorschlag hat jetzt funktioniert, aber ich bin nach wie vor unsicher, wie es bei den nächsten Updates aussehen wird.


    Sabine22

  • Also, ich habe nun "Server > Fehler berichten" auf maximun gestellt, es wurde nichts berichtet.
    Dann habe ich "System > System debuggen" eingestellt und unter "Datenbank" ein paar rote Zeilen gesehen, mit denen ich aber leider nichts anfangen kann. Diese hatten folgenden Inhalt
    "ES KONNTE KEIN INDEX-SCHLÜSSEL GENUTZT WERDEN"
    und
    "filesort wurde genutzt"
    Diese beiden Meldungen tauchen an 3-5 verschiedenen Stellen auf.
    Dann habe ich mir die Erweiterungen angesehen. Es gibt keine 3rd Party Extensions, nur die üblichen Templates und Editoren, die bei der Systeminstallation mitgeliefert werden. Für alles andere steht JoomlaProject als Autor in der Übersicht.


    Im Joomla Issue Tracker (https://issues.joomla.org/tracker/joomla-cms/12460) wird diese Lösung vorgeschlagen:
    SQL-Befehl:
    update xxxx_modulesset params="" WHERE params = "{\"\"}";


    Habe das nicht ausprobiert, könnte aber vielleicht die Lösung für die Überschreibung von altem Zeug sein, oder?

  • ;) ok, nächstes Mal - vielleicht ja schon am Dienstag ...
    Was ich nur sagen wollte, ich vermute den Übeltäter irgendwo im seit der Version 1.5 mitgeschleppten Core.
    Irgendwo wird auch die Vermutung geäußert, dass es bei Seiten, die mit JoomUpgrade von 1.5 auf 2.5 migirert wurden, auftritt.

  • irgendwo im seit der Version 1.5 mitgeschleppten Core


    Ja, dann aber in der Datenbank und nicht in PHP. Es geht wohl vornehmlich um Datenbankfelder wie params, wo die Parameter als JSON-String gespeichert werden. Und da hat (vermutlich) jUpgrade wohl unsaubere Strings abgespeichert oder aus früheren Versionen übernommen(?) (diese Gänsefüsschen gehören nicht in die Klammern), die nicht JSON sind. Beim dekodieren gibts dann also den Fehler.
    {} darf sein.
    auch ein Leerstring (leeres Feld).
    aber nicht {""} oder {\"\"} (keine Ahnung, nicht ausprobiert, worans jetzt hapert. Denke aber ersteres.)


    Eine betroffene Erweiterung müsste also bei Update seine DB-Felder prüfen/korrigieren bzw. vor Nutzung des Dekodierens den übergebenen String prüfen/korrigieren.

  • Nur als Vorwarnung das Sicherheitsupdate (Dienstag 16:00 Uhr) wird wieder die neue Dateien mitbringen sprich nach dem Update wieder den Ordner umbenennen oder das Problem gefixt haben ;)

  • Hallo,


    danke für die Hinweise! Ich habe nach verschieden Tests wieder auf den Stand 3.6.2 zurückgesetzt.
    Die Seite ist mit 3.4.1 erstellt worden, damit können alte Themen aus V 1.xx usw. nicht enthalten sein.
    Ich weiß jetzt nicht wirklich was ich mit der V 3.6.4 machen soll.......... sicherlich ist hier der Bug noch nicht beseitigt!

  • Hi,


    ich habe jetzt nochmals die Seite auf V 3.6.3 gebracht und wie oben angegeben die
    /libraries/vendor/joomla/
    umbenennen (zur Sicherheit):
    /libraries/vendor/joomla_bak/


    Dann aus dem Joomla-3.6.2-Paket
    /libraries/vendor/joomla/
    rüberkopieren nach 3.6.3


    Dabei werden 2 Dateien auf alten Stand 3.6.2 zurückgesetzt.
    \libraries\vendor\joomla\registry\src\Format\Json. php
    \libraries\vendor\joomla\registry\src\Registry.php


    kopiert. Hilft bei mir nicht! Ich bekomme immer noch die Anzeige
    0 - Error decoding JSON data: Syntax error


    Also wieder zurück auf die V 3.6.2

    • Hilfreich

    Hi Zusammen,


    ich hatte eben auch das genannte Problem und konnte mich nach dem Update nicht mehr einloggen. Hier der Fix dazu:


    https://github.com/joomla/joom…60#issuecomment-255298225


    Genauer:
    Mit phpMyAdmin in der Joomla Datenbank diese SQL Abfrage ausführen:

    Code
    update xxxx_modules set params="" WHERE params = "{\"\"}";


    xxx_modules muss natürlich mit Prefix Eurer DB getauscht werden.


    Für alle, die die Libraries gegen die vom 3.6.2 Paket getauscht haben: Das funktioniert so nicht, die werden wieder überschrieben. Ihr müsst die korrupten Daten in Eurer Datenbank los kriegen.


    CU J.

  • Hallo an alle,


    auch wenn das Thema schon was älter ist...


    Die gleiche Fehlermeldung kam in einem migrierten System bei einem Update auf Version 3.8.6


    In der Datenbank-Tabelle "Content" wurde ich fündig - in der Spalte MetaData stand:

    {...}

    tags=


    Wobei die 3 Pünktchen normale Inhalte sind, nur das "tags=" beschert die Fehlermeldung. Einfach bei den betroffenen Datensätzen raus löschen.


    Viele Grüße