我正在努力不得不提出这个问题,但我无法弄清楚如何将以下数组转换为下面的JSON格式。简单地json_encoding
数组不会产生所需的方括号。
PHP数组
$json = array(
"api_key" => $api_key,
"data" => array(
"item" => array (
"value" => rand(0, 5684),
"text" => "Total"
)
)
);
需要JSON格式
{
"api_key": "api key",
"data": {
"item": [
{
"value": 3212,
"text": "Total"
}
]
}
}
我应该如何更改数组以使json_encode生成正确的格式,或者在编码时是否缺少某些开关?
答案 0 :(得分:1)
你只是错过了关卡。在PHP中,item
是一个具有value
和text
属性的关联数组。但在预期的JSON中,它是一个包含一个具有value
和text
属性的对象的数组。因此,在PHP结构中,您需要一个简单的数组,将关联数组放在中。
E.g:
$json = array(
"api_key" => $api_key,
"data" => array(
"item" => array( // <== The simple array
array( // <== Your original associative array
"value" => rand(0, 5684) ,
"text" => "Total"
)
)
)
);
如果你json_encode
,那么,你得到:
{
"api_key": "your key",
"data": {
"item": [
{
"value": 605,
"text": "Total"
}
]
}
}
答案 1 :(得分:1)
如果您希望item
成为词典列表,则需要在输入中使用一组关联数组:
$json = array(
"api_key" => 'foo',
"data" => array(
"item" => array(
array (
"value" => rand(0, 5684),
"text" => "Total"
)
)
)
);