6
votes

Comment convertir le texte JSON en tableau associatif PHP

J'ai l'objet JSON suivant stocké dans un fichier texte (data.txt): xxx

que j'ai lu à l'aide de PHP: xxx P> Question: Y a-t-il un moyen facile de convertir $ données à un tableau associatif PHP. J'ai essayé d'utiliser json_decode ($ données); mais cela n'a pas fonctionné, aucune suggestion?


4 commentaires

Pourquoi json_decode ($) 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 juste bien.


3 Réponses :


27
votes
$assocArray = json_decode($data, true);
The second parameter set the result as an object(false, default) or an associative array(true).

1 commentaires

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



3
votes

essayer: json_decode ($ données, true)

http://www.php.net/manual/fr/ fonction.json-décode.php

Cela a fonctionné pour moi. En outre, assurez-vous que votre version PHP a JSON_ENCED / JSON_DECODE


0 commentaires

0
votes

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;
}


0 commentaires