我在将多维PHP数组转换为JSON时遇到了一些麻烦。我使用json_encode进行了转换,但它为空。
我正在尝试开发orgChart,数据是从CSV文件中读取并保存在数组中的。布局和JS代码用于接收JSON文件,因此我需要使用这种格式。
这是数组的一部分,其中包含175个数组
Array
(
[2] => Array
(
[id] => 1
[nome] => ELOTECH
[cargo] => ""
[idcargo] => 1
[pai] => 0
)
[3] => Array
(
[id] => 10
[nome] => Departamento Pessoal
[cargo] =>
[idcargo] => 10
[pai] => 1
)
[4] => Array
(
[id] => 20
[nome] => Comercial
[cargo] =>
[idcargo] => 20
[pai] => 1
)
)
我正在使用json_encode将数组转换为JSON OBS:*** $ colab是CSV馈送的阵列名称
$dados_json = json_encode($colab);
$fp = fopen("jsonOrgan.json", "w");
$write = fwrite($fp, $dados_json);
fclose($fp);
我需要它在JSON上输出,如下所示:
[{
"id": 1,
"cargo": "ELOTECH",
"nome": "",
"idcargo": 1,
"pai": 0
}]
但它返回null
这是我从CSV文件创建数组的方式。
while ($line = fgetcsv($save, 1000, ";")) {
if ($linha++ == 0) {
continue;
}
$colab[$linha] = [
'id' => $line[0],
'nome' => $line[1],
'cargo' => $line[4],
'idcargo' => $line[0],
'pai' => $line[5],
];}
答案 0 :(得分:3)
按照罗杰·罗素的指示,我的问题解决了。
由于编码,JSON变为NULL。 我使用了 uft8_encode 并解决了此问题。 然后,我更改了数组的创建方式以适合需要JSON文件的模式。
我正在使用一个计数器作为索引来创建数组,如下所示:
$colab[$linha] = [
'id' => $line[0],
'nome' => $line[1],
'cargo' => $line[4],
'idcargo' => $line[0],
'pai' => $line[5],
]
然后将其更改为不通过索引即可创建:
$colab[] = [
'id' => $line[0],
'nome' => $line[1],
'cargo' => $line[4],
'idcargo' => $line[0],
'pai' => $line[5],
]
就是这样,我的问题解决了!
谢谢!