2010-12-11 58 views
1

Je passe un paramètre 'data' à une page php en utilisant AJAX. Le paramètre est une chaîne JSON comme:Problème PHP décodage Paramètre GET avec des guillemets

{"type":"value"} 

J'Encode avec fonction encodeURIComponent JS obtenir:

%7B%22type%22%3A%22value%22%7D 

Si je vous écris à la main:

http://some_url/index.php?data=%7B%22type%22%3A%22value%22%7D 

mon "index.php" simplement obtient les paramètres et "imprime à l'écran". Le problème est que je reçois ce qui est pas un JSON valide pour décoder:

{\"type\":\"value\"} 

Toute aide, merci à l'avance

+0

Donc '{\" type \ ": \" value \ "}' est ce que vous obtenez quand vous faites 'echo $ _GET ['echo']'? Avez-vous essayé d'utiliser 'json_decode'? –

Répondre

2

Vérifiez que vous n'avez pas magic_quotes sur. L'utilisation de json_decode() pour décoder vos données JSON.

0

Faites comme ceci. Remplacer de "\" du paramètre.

$jsonString = $_GET['data']; 

$jsonStringReplaced = str_replace("\\","",$jsonString); 

$arr = json_decode($jsonStringReplaced); 

var_dump($arr); 

Cela a fonctionné pour moi.