试图从JSON列表中计算数组的长度


Trying to count the length of an array from JSON list

我正试图计算我使用php中的json_decode从JSON转换的数组的长度,但由于某种原因它不起作用。这是我现在的代码。JSON列表包含一个包含10,000个项目的数组。我很确定我错过了什么。如有任何帮助,我将不胜感激。

PHP

<?php
$fl = file_get_contents($somepath);
$text = json_decode($fl, true);
$len = count($text["alphalist"]);
echo $len;
?>
JSON

{
"alphalist": [{
        "a": "alphabet1."
    }, {
        "b": "alphabet2."
    }, {
        "c": "alphabet3."
    }, {
        "d": "alphabet4."
    }, {
        "e": "alphabet5."
    }
    ....
    {
        "zzzzz": "alphabet10000."
    }
]
}

答案实际上是在这里回答另一个类似的问题。

PHP不使用'json_decode()'

因此,在与用户D4V1D进行了一些测试之后,事实证明问题是由于PHP函数json_decode不工作,因为它不是UTF-8格式。解决这个问题的方法是

$fl = file_get_contents($somepath);
$text = json_decode(utf8_encode($fl), true);
$len = count($text["alphalist"]);

现在$len将给出正确的数组长度。如果我的解释中有任何错误或需要改进的地方,请在评论中注明,我将相应修改。