[英]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.