“'null' 不是对象(评估 'apiData.original_release_date.s
"'null' is not an object (evaluating 'apiData.original_release_date.split')";
我正在制作一个从GiantBomb的API中提取的应用程序,该应用程序将根据搜索的查询显示游戏目录。我希望它显示游戏的图片、标题和添加日期。
基本上我遇到的问题是 API 以非常不合逻辑的方式显示游戏创建日期(例如"1983-12-31 00:00:00"),最后一个字符始终是 00:00:00。(这完全是多余的)我正在使用.split()
和.join()
将其删除并替换为空白字符串。虽然一些结果填充并且我看到了结果,
遇到了这个大错误屏幕,给了我这个错误,我无法理解这个错误,因为所有对象都有日期并相应地被替换:
[ERROR] : Script Error {
[ERROR] : backtrace = "#0 () at :0";
[ERROR] : line = 54;
[ERROR] : message = "'null' is not an object (evaluating 'apiData.original_release_date.split')";
[ERROR] : name = TypeError;
;
[ERROR] : }
这也将随机停止无缘无故填充许多其他行。所有这些都有自己的日期。
这是全局对象...:
var nameObject = {
name : "",
original_release_date : "",
image : "",
此循环正在填充
var posts = json.results;
//Looping through the posts via JSON/////////////////////////
for (var i = 0; i < posts.length; i++) {
var apiData = json.results[i];
nameObject.name = apiData.name;
nameObject.original_release_date = apiData.original_release_date.split("00:00:00").join("");
nameObject.image = apiData.image;
console.log(nameObject.name);
console.log(apiData.original_release_date);
我想避免任何正则表达式。任何想法将不胜感激。谢谢!
考虑到你总是在apiData.original_release_date
获得像1983-12-31 00:00:00
这样的价值。
要拆分,您可以使用:
nameObject.original_release_date = apiData.original_release_date.split(" ")[0];
PS :如果您首先检查数据的格式(意味着它是否按您的预期正确出现),也会更好。
我想出了我的问题!所以正如我所想的,这完全是API的错。一些original_release_date
值实际上是空白的,因此null
。我也在一些图像中注意到了这一点。我对此的解决方案基本上是在我的for
循环中打一堆条件。
//Looping through the posts via JSON/////////////////////////
for (var i = 0; i < posts.length; i++) {
var apiData = json.results[i];
nameObject.name = apiData.name;
if (apiData.original_release_date != null) {
nameObject.original_release_date = apiData.original_release_date.split(" ")[0];
} else {
nameObject.original_release_date = "";
}
if (apiData.image != null) {
nameObject.img = apiData.image.super_url;
} else {
nameObject.img = "";
}
if (apiData.name != null) {
nameObject.name = apiData.name;
} else {
nameObject.name = "(Unknown Game Name)";
}`
如果有人有更有效的解决方案,请告诉我 - 谢谢!
- HTML5 Drag Release offsetX offsetY jump
- 找不到模块 './build/Release/bson'] 代码: 'MODULE_NOT_FOUND' } js-bs
- MongoDB - 错误:找不到模块“./build/Release/bson”
- JS - 传递给 JavaScript 函数的“data-original-title”的值
- 在release()错误后调用的方法
- 错误:找不到模块'/build/Release/sharp'
- Ajax发送一个get-to-original页面,而不是一个post-to-different页面
- 相当于"hold"和“;release"在hammer.js 2.0
- OpenStack Horizon dashboard (Folsom release) js builder
- 使用helper: 'original'With sortable()和draggable()似乎不起作
- jQuery add html to original-title?
- Angular2更新为rc5和@angular/router - ORIGINAL异常:没有router的提供商
- 两次包含ASP.NET Release jQuery
- 如何更改名称“data-original”;没有id的图像中的属性名称