【问题标题】:Extract Data Values from JSON ouput从 JSON 输出中提取数据值
【发布时间】:2020-12-10 19:53:19
【问题描述】:

我是 JSON 和概念的新手。我想从下面提到的 API 中提取数据,基本上我想从这个 API 中提取关于股票的几个细节。这里的问题是,在解析 URL 后,我不知道如何提取每个变量的值。

我想将数据提取到 GoogleSheet 中。

下面函数的输出显示,像这样

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

我想要的输出是:

JMIA
37.0497
1.317713E7

代码:

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);
  

}

【问题讨论】:

    标签: javascript json google-sheets google-sheets-api


    【解决方案1】:

    我建议你阅读这篇“Working with Objects”文章。

    响应包含在括号 [] 中,表示它是 array。我假设您只期待一个响应,因此您可以使用 jsonSignal[0] 获取第一个元素,这将为您提供一个对象。

    要获取对象属性,您必须使用点表示法或方括号表示法指定属性名称。 (我将使用点符号。)

    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
    }
    

    【讨论】:

      【解决方案2】:

      试试这样:

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

      我在那里读到:https://developers.google.com/apps-script/guides/services/external

      问候

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-23
        • 1970-01-01
        • 1970-01-01
        • 2021-12-08
        • 2018-05-23
        • 2021-07-01
        • 2018-11-21
        • 1970-01-01
        相关资源
        最近更新 更多