无法从 PHP 中的文件解码 JSON
Can't decode JSON from file in PHP
我在 PHP 中遇到 json_decode
的问题:
我有这个存档:
{1: ['oi','oi'], 2: ['foo','bar']}
这是我的 php 代码:
<?php
$string = file_get_contents("quizen.json"); // the file
$json = json_decode($string);
echo $json[1][0]
?>
但是回显returns什么的,我用了var_dump,结果是NULL!
有什么问题吗?
问题是您的文件无效 JSON 因为它对字符串使用单引号并将整数作为对象键:
{1: ['oi','oi'], 2: ['foo','bar']}
此外,由于 JSON 是一个对象,您应该使用 json_decode($string, true)
将其解码为关联数组。
A value can be a string in double quotes, or a number, or true or false or null, or an object or an array.
此外,对象键必须是字符串。
如果您将单引号更改为双引号并编辑您的 PHP 的 decode_json
调用以解码为关联数组,它应该可以工作。例如:
JSON:
{"1": ["oi","oi"], "2": ["foo","bar"]}
PHP:
<?php
$string = file_get_contents("quizen.json"); // the file
$json = json_decode($string, true); // set to true for associative array
echo $json["1"][0];
?>
我在 PHP 中遇到 json_decode
的问题:
我有这个存档:
{1: ['oi','oi'], 2: ['foo','bar']}
这是我的 php 代码:
<?php
$string = file_get_contents("quizen.json"); // the file
$json = json_decode($string);
echo $json[1][0]
?>
但是回显returns什么的,我用了var_dump,结果是NULL! 有什么问题吗?
问题是您的文件无效 JSON 因为它对字符串使用单引号并将整数作为对象键:
{1: ['oi','oi'], 2: ['foo','bar']}
此外,由于 JSON 是一个对象,您应该使用 json_decode($string, true)
将其解码为关联数组。
A value can be a string in double quotes, or a number, or true or false or null, or an object or an array.
此外,对象键必须是字符串。
如果您将单引号更改为双引号并编辑您的 PHP 的 decode_json
调用以解码为关联数组,它应该可以工作。例如:
JSON:
{"1": ["oi","oi"], "2": ["foo","bar"]}
PHP:
<?php
$string = file_get_contents("quizen.json"); // the file
$json = json_decode($string, true); // set to true for associative array
echo $json["1"][0];
?>