Hozefa
Hozefa

Reputation: 1726

Store json data returned using javascript

I have json string retuned via a ajax call

$.ajax({
            type: 'GET',
            url: quoteURL,
            dataType: 'json',
            timeout: 10000,
            crossDomain: true,
                 success: function(result) {
                /// required code       
               }

});

The returned json response from server is

{
   _emptyscopedata: [
      {},
      {}
   ],
   errMsgBuffer: {
      errMsg: ''
   },
   descriptor: [
      {
         template: 'projects/mobile/market/mostactives.xsl',
         componentname: 'getmostactives'
      },
      {
         template: '',
         componentname: 'quotelist'
      }
   ],
   'invest.mostactive': {
      MoverExchange: 'NSDQ',
      MoverType: 'ACT',
      urlType: ''
   },
   quotelist: {},
   'quote.quote': [
      {
         timezoneid: 'EST',
         change: '0.01',
         halted: '0',
         type: 'EQ',
         bidsize: '2900',
         fastmarket: '0',
         asksize: '300',
         close: '16.64',
         timestamp: 'May 18, 2011 3:00 PM EST',
         open: '16.64',
         productid: 'CSCO:NSDQ:EQ',
         bid: '16.63',
         exchange: 'NSDQ',
         symbol: 'CSCO',
         news: '0',
         quotetype: '2',
         percentchange: '0.0006',
         symboldesc: 'CISCO SYS INC COM',
         price: '16.65',
         utctime: '1305748800',
         volume: '92738240',
         high: '16.66',
         quotestatus: '0',
         low: '16.34',
         ask: '16.64',
         timestring2: '05/18/11 04:00 PM ET'
      },
      {
         timezoneid: 'EST',
         change: '0.04',
         halted: '0',
         type: 'EQ',
         bidsize: '91200',
         fastmarket: '0',
         asksize: '241000',
         close: '2.14',
         timestamp: 'May 18, 2011 3:00 PM EST',
         open: '2.13',
         productid: 'SIRI:NSDQ:EQ',
         bid: '2.17',
         exchange: 'NSDQ',
         symbol: 'SIRI',
         news: '0',
         quotetype: '2',
         percentchange: '0.0187',
         symboldesc: 'SIRIUS XM RADIO INC COM',
         price: '2.18',
         utctime: '1305748800',
         volume: '74540998',
         high: '2.2',
         quotestatus: '0',
         low: '2.12',
         ask: '2.18',
         timestring2: '05/18/11 04:00 PM ET'
      }
   ]
}

I want to show some of the values of the response on the site. But I am not able to retrieve the values. Can someone help.

Upvotes: 0

Views: 1002

Answers (2)

Santosh Gokak
Santosh Gokak

Reputation: 3411

You can use define a global variable in case you want to use the response out the success function scope. Just use

var cachedResp;//at global scope
$.ajax({ 
    type: 'GET', 
    url: quoteURL, 
    dataType: 'json', 
    timeout: 10000, 
    crossDomain: true, 
    success: function(result) {
        cachedResp = result; //this is now available out of the function
    }
});

Upvotes: 0

Darin Dimitrov
Darin Dimitrov

Reputation: 1039538

$.ajax({ 
    type: 'GET', 
    url: quoteURL, 
    dataType: 'json', 
    timeout: 10000, 
    crossDomain: true, 
    success: function(result) {
        alert(result.descriptor[0].template);
    }
});

and if you wanted to loop through all descriptors:

$.each(result.descriptor, function() {
    var template = this.template;
    var componentname = this.componentname;
    // TODO: process the template and componentname
});

or:

alert(result['invest.mostactive'].MoverExchange);

etc... depending on what you want to show

Upvotes: 2

Related Questions