我正在尝试使用JSONP帖子通过JavaScript客户端应用程序测试Alchemy News API。
我的JSON结果如下所示:
<results>
<status>OK</status>
<usage>
By accessing AlchemyAPI or using information generated by AlchemyAPI
</usage>
<totalTransactions>50</totalTransactions>
<result>
<docs>
<element>
<id>ODE0ODI3NTg3MHwxNDUzMzc2NDkz</id>
<source>
<enriched>
<url>
<title>
Mich. Company Offers $15 Million To Acquire Firm
</title>
</url>
</enriched>
</source>
<timestamp>1453376493</timestamp>
</element>
我可以使用以下代码(取自How do I get the JSON from an API request into my page's javascript?)
成功调用API function loadDoc() {
$.ajax({
url: 'https://gateway-a.watsonplatform.net/calls/data/GetNews?apikey=MY_KEY&outputMode=json&outputMode=json&start=now-7d&end=now&count=1&return=enriched,original',
dataType: 'jsonp',
jsonp: 'jsonp',
type: "get",
success: function (res) {
if (res["status"] === "OK") {
alert("Good!");
}
else if (res["status"] === "ERROR") {
alert("Bad!");
}
},
error: function (jqxhr) {
//console.log(jqxhr);
}
});
}
我真正在努力的是访问返回对象中的数据 我可以毫无问题地读取顶级值,例如 status ,但我似乎可以从架构中更深层次的信息中加载任何值。
有人可以发帖告诉我如何访问标题字段中的数据吗?
非常感谢提前。
答案 0 :(得分:0)
啊,我找到了解决方案(我没有意识到docs是一个数组)。以下是代码,以防对任何人有用。
function loadDoc() {
$.ajax({
url: 'https://gateway-a.watsonplatform.net/calls/data/GetNews?apikey=key&outputMode=json&outputMode=json&start=now-1d&end=now&count=2&q.enriched.url.enrichedTitle.relations.relation=|action.verb.text=acquire,object.entities.entity.type=Company|&return=enriched.url.title',
dataType: 'jsonp',
jsonp: 'jsonp',
type: "get",
data: { },
success: function (data) {
if (data["status"] === "OK") {
var html = '';
results = data.result.docs;
for (var i = 0; i < results.length; i++) {
newsTitle = results[i].source.enriched.url.title;
html = html + '<a href="#">' + newsTitle + '</a></br />';
}
$('#results').html(html);
}
else if (data["status"] === "ERROR") {
alert("Bad!");
}
},
error: function (error) {
//console.log(error);
}
});
}