2015-06-24 9 views
1

У меня возникает много вопросов, получающих ответ от json с помощью php. Код ниже echos ничего, и я понятия не имею, почему. Мне нужно иметь доступ ко всем точкам этого json-файла отдельно через функции.json_decode не работает и ничего не работает

file.json

{ 
    "file":{ 
     "name": "File Name", 
     "description": "This is a file!", 
     "license": "glp-2.0", 
     "version": "1.1.1", 
     "author": [{ 
      "name": "Author Name", 
      "email": "[email protected]" 
     }], 
     "require": [{ 
      "php": ">= 5.2.4", 
      "myslq": ">= 5.0", 
     }] 
    } 
} 

локальный/data.php

define('PATH', 'http://domain.com/json/'); 

function test(){ 
    $json = file_get_contents(PATH."file.json"); 
    $data = json_decode($json,true); 
    echo $data['file']['name']; 
} 

test(); 
+0

do 'var_dump ($ json); '' var_dump ($ data); ' – Neverever

+0

Как мне получить имя файла? var_dump возвращает «NULL», когда я вызываю функцию –

+0

, цель «var_dump ($ json)» - проверить, есть ли у вас какой-либо контент из 'file_get_contents', если да,' var_dump ($ data) 'проверяет, преобразуется ли он к объекту json. – Neverever

ответ

0
define('PATH', 'http://domain.com/json/'); 

function test(){ 
    $json = file_get_contents(PATH."file.json"); 
    $data = json_decode(preg_replace('/,\s*([\]}])/m', '$1', utf8_encode($json)),true); 
    echo $data['file']['name']; 
} 

test(); 

preg_replace ('/, \ S * ([]} ])/m ',' $ 1 ', utf8_encode ($ json)) Жирным шрифтом выделено мое исправление.

0

Рекомендуется использовать отладчик или выполнять отладочные распечатки. Try:

$json = file_get_contents(PATH."file.json"); 
var_dump($json); 
$data = json_decode($json,true); 
var_dump($data) 

Теперь вы можете увидеть, если file_get_contents или json_decode не работает.

Гораздо лучший вариант - использовать отладчик при разработке программного обеспечения, чтобы легко найти ошибки. Получите дополнительную информацию: http://xdebug.org/.

Смежные вопросы