2013-05-08 2 views
0
$result = json_decode(file_get_contents('route.json'),true); 

// the json file is here: http://myweb.polyu.edu.hk/~11010482d/FSP/route.json 

print_r($result); 

//it show '[{"X":"264","Y":"115"},{"X":"328","Y":"115"},{"X":"309","Y":"216"},{"X":"256","Y":"222"},{"X":"227","Y":"217"},{"X":"227","Y":"238"},{"X":"223","Y":"221"},{"X":"223","Y":"205"},{"X":"254","Y":"206"},{"X":"309","Y":"182"},{"X":"309","Y":"98"},{"X":"327","Y":"98"}]' 

//i have tried the string not using $result as variable to decode and it works. 

$abcdefg = json_decode('[{"X":"264","Y":"115"},{"X":"328","Y":"115"},{"X":"309","Y":"216"},{"X":"256","Y":"222"},{"X":"227","Y":"217"},{"X":"227","Y":"238"},{"X":"223","Y":"221"},{"X":"223","Y":"205"},{"X":"254","Y":"206"},{"X":"309","Y":"182"},{"X":"309","Y":"98"},{"X":"327","Y":"98"}]',true); 

print_r($abcdefg); 

//it show Array ([0] => Array ([X] => 264 [Y] => 115) [1] => Array ([X] => 328 [Y] => 115) [2] => Array ([X] => 309 [Y] => 216) [3] => Array ([X] => 256 [Y] => 222) [4] => Array ([X] => 227 [Y] => 217) [5] => Array ([X] => 227 [Y] => 238) [6] => Array ([X] => 223 [Y] => 221) [7] => Array ([X] => 223 [Y] => 205) [8] => Array ([X] => 254 [Y] => 206) [9] => Array ([X] => 309 [Y] => 182) [10] => Array ([X] => 309 [Y] => 98) [11] => Array ([X] => 327 [Y] => 98)) 
// and i want this result for the previous way. 
+0

Ваш 'route.json', похоже, не действительный JSON - он обернут одной цитатой. Так что в лучшем случае это всего лишь строка ** **. Удалите одиночную кавычку и повторите попытку. – Passerby

+0

Может быть, jsonp ожидает родительский индекс? Просто думаю :) –

+0

[Я надеюсь, вы с этой проблемой, надеюсь, что это помогает] [1] [1]: http://stackoverflow.com/questions/6336174/string-appears-to- be-valid-json-but-json-decode-returns-null –

ответ

0

Пожалуйста, попробуйте следующее:

<?php 
$json=file_get_contents('http://myweb.polyu.edu.hk/~11010482d/FSP/route.json'); 
$json=substr($json,1,-1); 

$result = json_decode($json,true); 

print_r($result); 
?> 
+0

Возможно, было бы неплохо предоставить и объяснение. Источник данных имеет ведущие и конечные кавычки, которые не требуются. Вызов substr удаляет их. – bumperbox

+0

Ха-ха просто идет по скорости, но да 'substr' вырезает первого и последнего символов. –

0

попробовать это

<?php 
$string = file_get_contents('http://myweb.polyu.edu.hk/~11010482d/FSP/route.json'); 
$result = json_decode(trim($string,"'"),true); 
print_r($result); 
?> 

Реальная проблема заключается в ваш JSON из URL имеет кавычки вокруг него .. что делает его invalid json ..

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