PHP JSON返回NULL

时间:2018-02-12 13:18:10

标签: php json

我有一个JSON文件,我想用PHP检索,但是当我尝试在屏幕上显示这些值时,它会返回NULL。

JSON:

{
"categorias": [
    {
        "nombre": "Fundamentos",
        "subcategorias": [
            {
                "nombre": "Colores",
                "modulos": [
                    {
                        "seccion": "<b>Colores</b>",
                        "objetos": [
                            {
                                "imagen": "sketches/fundamentos/preview/colores.png",
                                "titulo": "",
                                "texto": "",
                                "class": "full-width",
                                "noLink": true
                            }
                        ]
                    }
                ]
            },
            {
                "nombre": "Tipografías",
                "modulos": [
                    {
                        "seccion": "<b>Tipografías</b>",
                        "objetos": [
                            {
                                "imagen": "sketches/fundamentos/preview/tipografias.png",
                                "titulo": "",
                                "texto": "",
                                "class": "full-width",
                                "noLink": true
                            }
                        ]
                    }
                ]
            },
            {
                "nombre": "Iconografía",
                "modulos": [
                    {
                        "seccion": "<b>Iconografía</b>",
                        "objetos": [
                            {
                                "imagen": "sketches/fundamentos/preview/tipografias.png",
                                "titulo": "",
                                "texto": "",
                                "class": "full-width",
                                "noLink": true
                            }
                        ]
                    }
                ]
            }
        ],
        "unique": false
    }
]}

我阅读并尝试了许多其他解决方案,json必须用utf-8编码,但我无法实现它。自从我使用PHP编写代码以来,它已经有一段时间了,所以我现在非常生疏。

PHP:

$archivo = file_get_contents("../json_info.json");
$json_data = json_decode($archivo); //here I also tried to include "encode"
var_dump($json_data);

我也试过了:

$error = json_last_error();

使用encode_json返回0,没有它返回4。

我希望你能帮我一把。

修改/更新

有些人告诉我,我尝试在同一目录中添加json。还添加了&#34; true&#34;到json_decode:

$archivo = file_get_contents("json_info.json");
$json_data = json_decode($archivo, true);

这会返回NULL。

1 个答案:

答案 0 :(得分:0)

你的json很糟糕。 但我不知道。也许你必须使用它。 此代码100%有效;

例如

$archivo = file_get_contents("../json_info.json");
$json_data = json_decode($archivo);

print_r($json->categorias[0]->nombre);

你得到了

Fundamentos

OR

  print_r($json->categorias[0]->subcategorias);

输出

Array ( [0] => stdClass Object ( [nombre] => Colores [modulos] => Array ( [0] => stdClass Object ( [seccion] => Colores [objetos] => Array ( [0] => stdClass Object ( [imagen] => sketches/fundamentos/preview/colores.png [titulo] => [texto] => [class] => full-width [noLink] => 1 ) ) ) ) ) [1] => stdClass Object ( [nombre] => Tipografías [modulos] => Array ( [0] => stdClass Object ( [seccion] => Tipografías [objetos] => Array ( [0] => stdClass Object ( [imagen] => sketches/fundamentos/preview/tipografias.png [titulo] => [texto] => [class] => full-width [noLink] => 1 ) ) ) ) ) [2] => stdClass Object ( [nombre] => Iconografía [modulos] => Array ( [0] => stdClass Object ( [seccion] => Iconografía [objetos] => Array ( [0] => stdClass Object ( [imagen] => sketches/fundamentos/preview/tipografias.png [titulo] => [texto] => [class] => full-width [noLink] => 1 ) ) ) ) ) ) 

是对的。您的顶级对象类别中有3个项目。 subcategorias有3个词典。一切都很好。你可能遇到的唯一问题是路径。如果您在其他脚本中构建此脚本,它将从可执行文件获取当前路径,而不是从包含的路径获取。