在php中使用unicode标志进行Json解码使对象无法迭代

时间:2017-08-10 20:40:17

标签: php json

我从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所指出的

0 个答案:

没有答案