2010-04-15 7 views
1

J'utilise et j'ai besoin de JSON au format hiérarchique. Voir l'exemple de format JSON requis here. J'ai ID, ParentID, nom, champs de description dans la table de base de données Mysql. Maintenant Comment puis-je convertir des données dans JSON hiérarchique/imbriqué en utilisant PHP? Je connais json_encode ($ array). Mais, j'ai besoin de tableau php imbriqué/hiérarchique pour cela. Dites-moi ce qu'il faut faire.JSON imbriqué/hiérarchique à partir de MySQL/PHP

Répondre

1

Vous vous posez essentiellement deux questions ici - 1) comment obtenir une structure php hiérarchique à partir d'une table db et 2) comment encoder cette structure en json. Pour la première question voir, par exemple, mon (ancien mais travaillant) code. Pour la seconde, je crois que simple json_encode fonctionnera plutôt bien.

+0

Merci @stereofrog. Vous êtes très proche de mon objet. Le format encodé est différent de celui requis. Je n'ai pas besoin de parent_ID et d'autres choses arrivent. – Brij

0

Si vous avez installé l'extension PHP json sur votre serveur, utilisez-la sur un tableau. Les étapes seront les suivantes:

  1. Construire tableau PHP avec hiérarchie basée sur MySQL Resutls
  2. appel a json_encode ($ array) http://pl.php.net/manual/en/function.json-encode.php

Si vous n'avez pas json_encode activé sur votre serveur et ne peut pas installez-le ... Il vous suffira de l'écrire à la main.

Ce sera quelque chose comme ça (avertissement de code non testé):

function my_json_encode($array) 
{ 
    $return = '{'; 
    $count = count($array); 
    $i = 0; 
    foreach ($array as $key => $val) 
    { 
    $return .= '"'.$key.'" : '; 
    if (!is_array($val)) 
     $return .= '"'.$val.'"'; 
    else 
     $return .= my_json_encode($val); 
    if ($i < $count-1) 
     $return .=","; 
    $i++; 
    } 
    $return .= '}'; 
    return $return; 
} 
+0

Cette solution est une preuve de concept simple et doit être améliorée. Ajouter est, par exemple, un support de type objet et une poignée d'erreur. Il est préférable d'utiliser json_encode de toute façon. –

+0

Désolé, encore une chose. Si vous envoyez json, n'oubliez pas que vous devez définir les en-têtes appropriés en réponse. Comme: header ('Content-type: application/json'); –

+0

Maintenant, ma question est de savoir comment créer un tableau php imbriqué/hiérarchique? – Brij

Questions connexes