CodeMonkey
CodeMonkey

Reputation: 45

Fetching JSON data from a URL in javascript?

I am trying to retrieve data from a URL of the form http://www.xyz.com/abc.json. I have been trying to achieve this using the $.ajax method in the following manner.

    var json = (function () {
        var json = null;
        $.ajax({
            'async': false,
            'global': false,
            'url': "http://www.xyz.com/abc.json.",
            'dataType': "json",
            'success': function (data) {
                json = data;
            }
        });
        return json;
    })();

However I am being unable to get this to run. I need to loop through the retrieved data and check for some specific conditions. This could have been achieved easily with the $.getJSon if the json data had a name to it, however the file is of the form:

    [{
        "name": "abc",
        "ID": 46 
    }]

because of which I have to effectively convert and store it in a Javascript object variable before I can use it. Any suggestions on where I might be going wrong?

Upvotes: 3

Views: 415

Answers (2)

Phil Bozak
Phil Bozak

Reputation: 2822

It looks like you will want to convert that data response to a json object by wrapping it with { } and then passing that to the json parser.

function (data) {
  json = JSON.parse("{\"arr\":"+data+"}").arr;
}

Then to get your data, it would be

json[0].name  //"abc"

Upvotes: 1

cgajardo
cgajardo

Reputation: 364

So your question is how to convert a string to Json object? If you are using Jquery you can do:

jQuery.parseJSON( jsonString );

So your return should be:

return jQuery.parseJSON( json );

You can read documentation here

Upvotes: 0

Related Questions