我如何获得此格式:
{
"products": [
{
"id": 4,
"link": "/product.php?id_product=4",
"quantity": 1,
"priceByLine": "$185.00",
"name": "Orci hendrer...",
"price": "$185.00",
"idCombination": 0,
"hasAttributes": false,
"hasCustomizedDatas": false,
"customizedDatas":[
]
}, {
"id": 5,
"link": "/product.php?id_product=5",
"quantity": 1,
"priceByLine": "$215.00",
"name": "Semper rutru...",
"price": "$215.00",
"idCombination": 0,
"hasAttributes": false,
"hasCustomizedDatas": false,
"customizedDatas":[
]
}],
}
作为PHP数组?我试过了
$array[] = array('id'=>5, link => 'product.php?id_product=5' ... and so on)
但是当我使用JSON进行编码时,它无法正常工作。
答案 0 :(得分:3)
您必须以正确的方式嵌套数组,如下例所示。
$arr = array( 'products' => array(
array('id'=>4, link => 'product.php?id_product=4' ),
array('id'=>5, link => 'product.php?id_product=5' )
)
);
修改强>
在您的代码中,初始化对象看起来像这样:
$arr = array( 'products' => array() );
可以像这样添加每个后续产品(例如,在解析数据库结果的循环中):
$arr['products'][] = array('id'=>5, link => 'product.php?id_product=5' );
答案 1 :(得分:0)
$data = array(
'products' => array(
array('id'=>5, link => 'product.php?id_product=5' ... and so on),
array('id'=>5, link => 'product.php?id_product=5' ... and so on)
// repeat once for element.
)
);
json_encode($data);
答案 2 :(得分:0)
这是json_encode($array)
的输出,其中$array
是嵌套的。
答案 3 :(得分:0)
如果您需要以JSON格式返回AJAX响应 - 您需要添加标题。
<?php
header("Content-type: application/json");
echo json_encode($array);
否则 - 您可以将数组打印到JS全局变量中。
<?php
echo '<script>';
echo 'var foo = ' . json_encode($array); . ';';
echo '</script>';