我有一个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。
答案 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个词典。一切都很好。你可能遇到的唯一问题是路径。如果您在其他脚本中构建此脚本,它将从可执行文件获取当前路径,而不是从包含的路径获取。