L'erreur Error Decoding JSON Data: Syntax Error est particulièrement bloquante puisque vous n'avez même plus accès au login du panneau d'administration de Joomla. Ce genre de blocage est généralement le fait d'extensions tierces ou d'outils de migration (site joomla migré depuis d'anciennes versions). AU cours de ce tutoriel, nous allons voir comment fixer l'erreur dans Joomla.
Explications
Joomla stocke certaines de ses données sous forme de JavaScript Object Notation (JSON). JSON a des règles de syntaxe qui décrivent comment les données doivent être stockées. Si les données sont corrompues et qu'elles ne respectent pas les règles, une erreur se produit.
Depuis la version 3.6.3, Joomla a commencé à remonter plus d'erreurs si ces données sont stockées de manière incorrecte. Concrétement, si une syntaxe JSON incorrecte est détectée, l'erreur Error Decoding JSON Data: Syntax Error s'affiche. Cela ne signifie pas que Joomla 3.6.3 est la cause du problème. Cela signifie juste que cette version fait un très bon travail en signalant ces erreurs.
La clef du problème
On vient de le voir, le problème vient donc des données du site. Ainsi, tout correctif que vous trouvez vous invitant à modifier les fichiers du site est incorrect. La clé pour résoudre cette erreur est de corriger les données fautives. Et où sont ces données ? Elles sont stockées dans la base de données.
Dans le cas présent, elles sont très probablement dans un champ "params" dans la table _extensions ou la table _modules.
Comment fixer l'erreur ' Error Decoding JSON Data: Syntax Error ' dans Joomla
Maintenant que nous avons compris quel était le problème et ou il fallait le règler, nous allons passer à la pratique.
Travailler sur la base de données d'un site Web est un acte qui est tout sauf anodin.
Vous devez faire une sauvegarde de votre base de données avant d'intervenir dessus. Toute erreur est irréversible !
Pour les besoins de ce tutoriel, nous allons supposer que votre hébergeur vous propose au minimum un outil du type PhpMyAdmin pour accéder aux tables de la base de données de votre site Joomla.
Comme nous ne savons pas exactement dans quelles tables se trouvent les données erronées qui provoquent l'erreur Error Decoding JSON Data: Syntax Error sur notre site, nous allons exécuter une requête sur les tables _extensions et _modules qui sont généralement les plus susceptibles d'être en cause.
Ouvrez PhpMyAdmin (ou son équivalent, suivant votre hébergement) :
Sélectionnez d'abord la base de données concernée puis cliquez sur l'onglet SQL.
Dans le champ de saisie, copiez : update xxxx_modules set params = '' where params like '%{""}%';
(remplacez les XXXX par le préfixe des tables de votre base de données) :
Si tout est ok et que vous avez réellement fait une sauvegarde de votre base de données avant d'intervenir, cliquez sur le bouton Exécuter :
Procédez à la même opération avec la requête suivante update xxxx_extensions set params = '' where params like '%{""}%';
Testez maintenant l'accès au panneau d'administration de votre site Joomla pour vérifier que tout est rentré dans l'ordre :
Si cela ne suffisait pas, sachez qu'il existe un script écrit par Robert Went qui pourra vous aider à venir à bout de cette erreur.
Grâce à ce tutoriel, vous avez réussi à corriger l'erreur ' Error Decoding JSON Data: Syntax Error '.