预期的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循环时如下:
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 :(得分:1)
$json['nodes'] = Array();
...
$json['nodes'][] = Array('node' => $row);
答案 1 :(得分: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脚本输出你需要的结构