无法使用file_get_contents()以正确的格式获取json

I parse a parameter to a php file and try to get json with file_get_contents(). This is my Code:

< ?php
    $url = $_GET['url'];
    $url = urldecode($url);
    $json = file_get_contents($url, true);
    echo($json);
? >

This is the called URL: http://vimeo.com/api/v2/channel/photographyschool/videos.json

This is a part of my result:

[{"id":40573637,"title":"All For Nothing - \"Dead To Me\" & \"Twisted Tongues\""}]

And so on... So everything is escaped. There are even in the result.

Since I neet to work afterwards with the json (in js), I need a non escaped version!

Interesting thing is, that my code works for example with this json: http://xkcd.com/847/info.0.json

What is my problem?

If you just want to proxy/forward the response then just echo it as it is with the correct Content-Type header:

<?php
    header('Content-Type: application/json');
    $json = file_get_contents('http://vimeo.com/api/v2/channel/photographyschool/videos.json');
    echo $json;
?>

Tho you have to be very wary of the url passed as it could cause XSS!

And as the API is slow/resource hungry you should cache the result or at least save it in a session so its not repeated on each page load.

<?php
$cache = './vimeoCache.json';
$url = 'http://vimeo.com/api/v2/channel/photographyschool/videos.json';

//Set the correct header
header('Content-Type: application/json');

// If a cache file exists, and it is newer than 1 hour, use it
if(file_exists($cache) && filemtime($cache) > time() - 60*60){
    echo file_get_contents($cache);
}else{
    //Grab content and overwrite cache file
    $jsonData = file_get_contents($url);
    file_put_contents($cache,$jsonData);
    echo $jsonData;
}
?>

Use this:

echo json_decode($json);

EDIT: FORGET the above. Try adding:

header('Content-Type: text/plain');

above

$url = $_GET['url'];

and see if that helps.

better yet, where you deliver your json use:

json_encode(array(
    "id" => 40573637,
    "title" => 'All For Nothing - "Dead To Me" & "Twisted Tongues"'
));