2012-02-02 22 views
0

期待JSON文字列は次のとおりです。JSON文字列の構造

{ 
    "nodes": [ 
     { 
      "node": { 
       "field1": "Book1", 
       "field2": "Book2", 
       "field3": "Book3" 
      } 
     }, 
     { 
      "node": { 
       "field1": "Book1", 
       "field2": "Book2", 
       "field3": "Book3" 
      } 
     } 
    ] 
} 

これは私のコードのものである:

<?php 

//Mysql stuff. 
mysql_connect('localhost', 'root', ''); 
mysql_select_db('dbname'); 

//create a query string to use 
$query = "SELECT field1, field2, field3 FROM table"; 
$result = mysql_query($query); 
$array = mysql_fetch_assoc($result); 

$node['node']=$array; 
$concat['node']=array($node); 

echo json_encode($concat); 

?> 

それだけで、配列の最初の要素を返します。そう

、次のようにループしながら、私は試してみてください。

while($row = mysql_fetch_assoc($result)) { 
    $json[] = $row; 
} 
echo json_encode($json); 

が、それはそのように出力します

[ 
    { 
     "field1": "Book1", 
     "field2": "Book2", 
     "field3": "Book3" 
    }, 
    { 
     "field1": "Book1", 
     "field2": "Book2", 
     "field3": "Book3" 
    } 
] 

私は私が期待されるJSON文字列を取得することができますどのように、JSON構造の初心者です?何か案は?

+0

が出力置く必要がある構造出力: "

"; print_r($concat); echo "
" エコー; – ZiTAL

答えて

1
$json['nodes'] = Array(); 

... 

$json['nodes'][] = Array('node' => $row); 
+0

'while($ array = mysql_fetch_assoc($ result)){ \t $ json ['nodes'] [] = Array( 'node' => $ array); \t } エコーjson_encode($ json); '@Ignacio Vazquez-Abrams - 私は期待されたjsonの文字列:) – kankaungmalay

0
<?php 
$array = array 
(
     'nodes' => array 
     (
       array 
       (
         'node' => array 
         (
           'field1' => 'Book1', 
           'field2' => 'Book2' 
         ) 
       ), 
       array 
       (
         'node' => array 
         ( 
           'field3' => 'Book3', 
           'field4' => 'Book4' 
         )      
       ) 

     ) 
); 

echo json_encode($array); 
?> 

このPHPスクリプトを使用すると、