无法使用Javascript从易趣API响应中检索值
Unable to retrieve values from eBay API response using Javascript
我正在尝试构建一个非常简单的工具,以便在工作中使用。我在易趣工作,目前可用的工具对这项任务来说很麻烦。我们被要求比较文本和图像,以检查卖家是否在窃取对方的内容。我使用的是eBay Trading API和创建开发人员帐户时提供的示例HTML/CSS/Javascript代码。最终,我希望实现的是一个简单的页面,显示两个项目的照片和描述。然而,现在我只是试图编辑用于显示拍卖开始日期的示例代码。
我的问题是:我正在尝试添加一个变量,该变量的值由API的响应决定。但是,当我将自己的var starttime = items.listingInfo.startTime
添加到函数并将变量添加到HTML表时,没有显示任何数据,包括添加之前显示的数据。不幸的是,我对javascript只有一个基本的理解,所以我不确定这个问题的措辞是否正确,更不用说我的加法语法是否正确了。我做错了什么?
下面是我添加了一个声明变量(starttime
)和一个添加到HTML表的示例文本
<html>
<head>
<title>eBay Search Results</title>
<style type="text/css">body { font-family: arial,sans-serif;} </style>
</head>
<body>
<h1>eBay Search Results</h1>
<div id="results"></div>
<script>
function _cb_findItemsByKeywords(root)
{
var items = root.findItemsByKeywordsResponse[0].searchResult[0].item || [];
var html = [];
html.push('<table width="100%" border="0" cellspacing="0" cellpadding="3"><tbody>');
for (var i = 0; i < items.length; ++i)
{
var item = items[i];
var title = item.title;
var viewitem = item.viewItemURL;
var starttime = items.listingInfo.startTime;
if (null != title && null != viewitem)
{
html.push('<tr><td>' + '<img src="' + pic + '" border="0">' + '</td>' +
'<td><a href="' + viewitem + '" target="_blank">' + title + '</a>' + starttime + '</td></tr>');
}
}
html.push('</tbody></table>');
document.getElementById("results").innerHTML = html.join("");
}
</script>
<!--
Use the value of your appid for the appid parameter below.
-->
<script src=http://svcs.ebay.com/services/search/FindingService/v1?SECURITY-APPNAME=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&OPERATION-NAME=findItemsByKeywords&SERVICE-VERSION=1.0.0&RESPONSE-DATA-FORMAT=JSON&callback=_cb_findItemsByKeywords&REST-PAYLOAD&keywords=iphone%203g&paginationInput.entriesPerPage=3>
</script>
</body>
</html>"
如果您认为listingInfo
是单个项的属性,并且它是具有属性startTime
的对象,那么正确的语法是:
var item = items[i];
var title = item.title;
var viewitem = item.viewItemURL;
var starttime = item.listingInfo.startTime;
您当前引用的是items
,它是项的数组,而不是单个项。
更新
我通过你在评论中的URL对此进行了调查。这个特殊问题的解决方案是:
var starttime = item.listingInfo[0].startTime;
我希望这能有所帮助。请查看常见问题解答;Imho这个问题不在这个网站的范围内(这个问题真的很窄,不太可能帮助其他人)。我推荐Mozilla开发者网络作为了解更多JavaScript的来源。
相关文章:
- 使用ajax长轮询从外部API更新页面上的响应
- 使用javascript API响应内部服务器错误将曲目上传到SoundCloud
- 如何将Facebook Graph API响应存储为Javascript数组
- 提取API对Javascript中JSON对象响应的特定部分
- 带Jquery的wep API,加载资源失败:服务器响应状态为404(未找到)
- 来自facebook图形API的响应中出错
- 尊重“; 〃;从HTML显示中的API响应返回的换行符(和特殊字符)
- 获取 API 响应对象并替换(映射)所有键
- 将日期作为从 Web API 到 angularJS 的 json 响应
- $http.获取和$http.JSONP未能获得Google API响应
- 在 Angular2 和 ionic 中读取 API 响应
- 使用 RESTful API,如果未定义特定的响应 json 级别,我如何在客户端不出错
- 使用来自AngularJS的Web API JSON响应-错误:应为和数组,但得到了一个对象
- 使用官方 Node.js SendGrid API 发送电子邮件时,响应 JSON 中可能出现哪些错误消息
- 当react路由器更改时,我们可以取消api响应吗
- PHP应该压缩我的API响应
- 利用API响应实现站点自动化
- 请求一个完整的响应对象,而不是紧凑的响应对象foursquare场地搜索api
- 从不同的API收集数据,并将它们一起发送到响应中
- 谷歌地图JS API-如何使用fitBounds响应地图