我从php中的函数获取JSON对象,
$jsonObject = someFunc();
然后我将JSON对象解码为
$jsonObject = json_decode($jsonOutput, JSON_UNESCAPED_UNICODE);
现在,我无法迭代访问此$ jsonObject变量的任何属性。 如果我做
($jsonObject->attr1)
它让我空虚
如果属性是一个数组而我
count($jsonObject->attr2)
它返回0.
但是,如果我尝试对其进行编码并将其写入文件,则会将数据写入变量
file_put_contents($file, json_encode($jsonOutput, JSON_UNESCAPED_UNICODE));
使用变量的内容写入文件。
我很困惑为什么我无法迭代或访问已解码的JSON对象。
P.S。 - 如果我没有标志解码,例如:
$jsonObject = someFunc();
$jsonObject = json_decode($jsonOutput);
然后我可以访问并迭代JSON对象, 但我需要标志来考虑数据中的非英文字符。
编辑:即使我使用它,也会发生这种情况:
$jsonOutput = json_decode($jsonOutput, false, 512, JSON_UNESCAPED_UNICODE);
正如@u_mulder所指出的