繁体   English   中英

如何从json对象数组中获取字符串?

[英]How to get string from json object array?

我在从 google Finance api 提供的 json 中提取任何字符串时遇到问题。 在我调试时获取“未定义”。 . 在下面的例子中,我对符号(t)和当前价格(l)感兴趣。

 $.getJSON("http://finance.google.com/finance/info?client=ig&q=TSLA&callback=?",
        function(json) {
        var Stocks = json;
        var text ="";   
        text = Stocks.l + " is the current stock price for: " + Stocks.t;
        document.getElementById('Textn').innerHTML = text; 

        });

响应是一个对象数组:

[
  {
    "id": "12607212",
    "t" : "TSLA",
    "e" : "NASDAQ"
    //etc

因此,要访问对象属性,您需要先钻入数组以获取所需的元素:

json[0].t //gets prop "t" of elem at index 0 of array, returns "TSLA"

Stocks.l 未定义,因为 Stocks / 您得到的响应是一个数组,而不是单个对象。

以防万一你收到一个包含多个对象的数组,我会使用一个循环——如果它是一个只有一个元素的数组,那么循环没有坏处。 下面使用 es6 对象解构,因此请注意,目前它不适用于所有浏览器:

 $.getJSON("https://finance.google.com/finance/info?client=ig&q=TSLA&callback=?", json => { for (let {l, t} of json) { let text = l + " is the current stock price for: " + t; document.getElementById('Textn').innerHTML += text; } });
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><div id="Textn"> </div>

es5 变体类似于

 $.getJSON("https://finance.google.com/finance/info?client=ig&q=TSLA&callback=?", function(json) { json.forEach(function(v) { var text = vl + " is the current stock price for: " + vt; document.getElementById('Textn').innerHTML += text; }); });
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="Textn"> </div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM