How do I use external JSON...?

15,416

Solution 1

Yep, that's JSON. The site may not support JSONP, so you're gonna have to use PHP to do this.

This is untested, but should work.

<?php
$url = 'https://recruit.zoho.com/ats/EmbedResult.hr?jodigest=2cV.Sr2As6VxhLMxQGuTNij*g.Fb3J7ysduDs.AC9sU-&atslocale=en_GB&rawdata=json';
$JSON = file_get_contents($url);

// echo the JSON (you can echo this to JavaScript to use it there)
echo $JSON;

// You can decode it to process it in PHP
$data = json_decode($JSON);
var_dump($data);
?>

Solution 2

JSONP relies on the server to return a JSONP formatted response. Basically, to use JSONP the server needs to return a JSON string wrapped in a function invocation ({"foo":1} becomes func({"foo":1})).

As the server your using doesn't return a JSONP response, you cannot use JSONP, you can only use JSON.

This is a shame, as JSON cannot be used x-domain due to the same origin policy (SOP). Therefore, the only option you have is to use a proxy server, which retrieves the JSON from the server, and either gives it to you in JSONP (see Yahoo Pipes), or which is on the same domain as the requested page (write a simple PHP script to get the file using file_get_contents() and then echo the output), in which case it can return the JSON.

Share:
15,416
Derek Ho
Author by

Derek Ho

Updated on June 04, 2022

Comments

  • Derek Ho
    Derek Ho almost 2 years

    spent a few hours trying to figure this out, but cannot for the life of me figure out what's going wrong.

    All I'm trying to do is load this:

    https://recruit.zoho.com/ats/EmbedResult.hr?jodigest=2cV.Sr2As6VxhLMxQGuTNij*g.Fb3J7ysduDs.AC9sU-&atslocale=en_GB&rawdata=json
    

    which I believe is json, into either javascript/jquery or php and use the data.

    I've looked into jsonp, followed some tutorials, used some demos as templates and just can't get the above data to work.

    If anyone can shed some light it would be much appreciated. It really shouldn't be this complicated, but I don't know what's going wrong.

  • Derek Ho
    Derek Ho over 12 years
    thanks for this! seems to be a step forward in the right direction. ideally it would be useful if I can use it in php, but the var_dump is returning null... echoing it works fine so may use JS.
  • Derek Ho
    Derek Ho over 12 years
    unfortunately I haven't had much experience with JS beyond using and customising jquery modules
  • Derek Ho
    Derek Ho over 12 years
    Thanks for the info, still getting my head around json.
  • gen_Eric
    gen_Eric over 12 years
    @DerekHo: Weird, maybe there are some characters it doesn't like or something, I'm not sure.
  • Derek Ho
    Derek Ho over 12 years
    I can decode and dump the actual data (if I said $JSON = 'data')... but I cannot decode and dump $JSON = file_get_contents($url); very strange...
  • Derek Ho
    Derek Ho over 12 years
    ...so apparently £ signs aren't allowed in JSON. A simple str_replace() sorted that out. thanks for your help.
  • gen_Eric
    gen_Eric over 12 years
    @DerekHo: Glad you figured it out, I'm happy to help :-)