如何使用PHP实现或创建这种类型的JSON对象
{
"label": "Devices per year",
"data": [
[1999, 3.0], [2000, 3.9], [2001, 2.0], [2002, 1.2], [2003, 1.3], [2004, 2.5], [2005, 2.0], [2006, 3.1], [2007, 2.9], [2008, 0.9]
]
}
经过几次尝试,我都没有找到解决办法。例如,我尝试过这个:
$arrayDateAndMachine = array(
"1999"=>3.0,
"2000"=>3.9
);
$arr = array(
"label" => "Devices per year",
"data" => $arrayDateAndMachine
);
var_dump(json_encode($arr));
$obj = new stdClass();
$obj->label="Devices per year";
$obj->data = array(
array('1999','3.0'),
array('2000','3.9'),
//and so on...
);
echo json_encode($obj);
尝试使用此
$arrayDateAndMachine = array( array("1999","3.0"),
array("2000","3.9")
);
方括号json
中的[]
是数组,所以必须像一样操作
<?php
$arrayDateAndMachine = array(
array(1999, 3.0),
array(2000, 3.9),
);
$arr = array("label" => "Devices per year",
"data" => $arrayDateAndMachine);
var_dump(json_encode($arr));
我更喜欢以下语法,它可以获得所需的结果,而且读起来很清楚:
$ar = array(
"label" => "Devices per years",
"data" => array(array(1999, 3.0), array(2000, 3.9) )
);
var_dump(json_encode($ar));
唯一的区别是输出中的"3.0"被渲染为"3"。如果您需要尾部的".0",您可以用引号将这些值括起来。
如果您只想将其声明为JSON,而不想使用JSON_encode,那么这样做应该有效。这也消除了为内部的每个数组声明多个变量的需要。但只有当数据数组的内容有限时,这才是可行的解决方案。
$json_string = '{
"label": "Devices per year",
"data": [
[1999, 3.0], [2000, 3.9], [2001, 2.0], [2002, 1.2], [2003, 1.3], [2004, 2.5], [2005, 2.0], [2006, 3.1], [2007, 2.9], [2008, 0.9]
]}';