user434853
user434853

Reputation: 11

Extract Data Values from JSON ouput

I am new to JSON and concepts. I want to extract the data from an API which i have mentioned below, basically i want to extract several details from this API about an Stock. The problem here is, after parsing the URL i dont know how to extract the value for each variablle.

I want to extract the data into an GoogleSheet.

the output of the below function shows, like this

[20-12-10 20:45:15:806 CET] [{symbol=JMIA, price=37.0497, volume=1.317713E7}]

The output i wanted is that:

JMIA
37.0497
1.317713E7

Code :

function CurrentPrice() {
  
           var url = 'https://financialmodelingprep.com/api/v3/quote-short/JMIA? 
            apikey=7c2f5bcb573b33050c1aad41a54919';
   
            var response = UrlFetchApp.fetch(url);

            // convert json string to json object
            var jsonSignal = JSON.parse(response);    

            Logger.log(jsonSignal);
  

}

Upvotes: 1

Views: 112

Answers (2)

Florian
Florian

Reputation: 51

Try like this :

var json = response.getContentText();
var data = JSON.parse(json);
Logger.log(data);

I read that there : https://developers.google.com/apps-script/guides/services/external

Regards

Upvotes: 1

Diego
Diego

Reputation: 9571

I suggest you read this "Working with Objects" article.

The response is wrapped in brackets [] meaning it's an array. I assume you're only expecting one response, so you can grab that first element using jsonSignal[0], which will give you an object.

To get an object property, you have to specify the property name using either dot- or bracket-notation. (I'll use dot-notation.)

const jsonSignal = [{symbol:'JMIA', price:37.0497, volume:1.317713E7}]; 
console.log(jsonSignal[0].symbol); // 'JMIA'

function CurrentPrice() {
  const url = 'https://financialmodelingprep.com/api/v3/quote-short/JMIA?apikey=API_KEY';
  const response = UrlFetchApp.fetch(url);
  
  // Convert HTTPResponse
  // Use the first element in the response array
  const signal = JSON.parse(response)[0];
  
  console.log(signal.symbol); // 'JMIA'
  console.log(signal.price); // 37.0497
  console.log(signal.volume); // 1.317713E7
}

Upvotes: 1

Related Questions