CSV到JSON。某些值为null

时间:2013-11-27 16:24:18

标签: php json csv

我为JSON PHP文件构建了一个CSV。但它无法正常工作。值“faktor”总是为null。价值问题有时是空的。我希望你能帮助我。谢谢!

PHP文件

    <?php
$row = 0;
$filename = "launeImTeam.csv";
$questions = array();

if (($handle = fopen($filename, "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {   
        $questions[$row] = array(
            "question" => $data[0], 
            "typ" => $data[1],
            "faktor" => $data[2]
        );
        $row++;
    }
    fclose($handle);
}

$final = array("alleFragen"=>$questions);
echo json_encode($final); 

?>

这是CSV文件的数据。 (它的德语)。

Wie sehen Sie Ihren zeitlichen Plan?;fuenf;Qualität;
Ich möchte Kaffee?;fuenf;Qualität;
Sind sie da???;jn;Qualität;
nein?;jn;Qualität;

这是结果。 :(

{
   "alleFragen":[
      {
         "question":"Wie sehen Sie Ihren zeitlichen Plan?",
         "typ":"fuenf",
         "faktor":null
      },
      {
         "question":null,
         "typ":"fuenf",
         "faktor":null
      },
      {
         "question":"Sind sie da???",
         "typ":"jn",
         "faktor":null
      },
      {
         "question":"nein?",
         "typ":"jn",
         "faktor":null
      }
   ]
}

抱歉我的英文! :)

编辑:是不是因为äöü??

2 个答案:

答案 0 :(得分:1)

这是因为您的值未编码为UTF-8。在调用阵列上的json_encode之前,使用iconv()或utf8_encode将它们从原始编码(对于CSV文件)转换为UTF-8。任何无效的UTF-8值都将返回null

the documentation of json_encode中注明了这一点。

答案 1 :(得分:0)

json_encode的默认行为是转义所有Unicode字符。

使用JSON_UNESCAPED_UNICODE选项和json_encode函数,如果json_last_error()函数有任何错误。