J'ai l'objet JSON suivant stocké dans un fichier texte (data.txt): que j'ai lu à l'aide de PHP: p> $ données code> à un tableau associatif PHP. J'ai essayé d'utiliser json_decode ($ données); code> mais cela n'a pas fonctionné, aucune suggestion? P> p>
3 Réponses :
$assocArray = json_decode($data, true); The second parameter set the result as an object(false, default) or an associative array(true).
Assurez-vous de ne pas obtenir vos citations simples et doubles mélangées: // valide JSON: $ string = '{"FOO": "bar", "cool": "attr"}'; // non valide JSON: $ string = "{'FOO': 'Bar', 'Cool': 'attr'}"; Voir: JSON.ORG
essayer:
http://www.php.net/manual/fr/ fonction.json-décode.php p>
Cela a fonctionné pour moi. En outre, assurez-vous que votre version PHP a JSON_ENCED / JSON_DECODE P> json_decode ($ données, true) code> p>
Vous pouvez utiliser cette fonction pour convertir une matrice de JSON en PHP, ceci peut valider si la chaîne fournie est valide JSON ou non:
function convert_to_json($file, $in_array = True) {
if(file_exists($file)) {
$string = file_get_contents($file);
}else {
$string = $file;
}
$return_array = json_decode($string, $in_array);
if (json_last_error() == JSON_ERROR_NONE) {
return $return_array;
}
return False;
}
Pourquoi
json_decode ($) code> ne fonctionne pas?Parce que le JSON provient d'un fichier texte et PHP le lit comme une chaîne.
Vous devrez peut-être coder la chaîne dans JSON. Puis mettez-le dans un tableau ..
Json === string. Si votre fichier texte contient la chaîne que vous avez affichée ci-dessus, elle devrait être
json_decodable code> juste bien.