在 JSON 调用中获取 UNDEFINED
Posted
技术标签:
【中文标题】在 JSON 调用中获取 UNDEFINED【英文标题】:Getting an UNDEFINED on a JSON call 【发布时间】:2022-01-04 18:05:03 【问题描述】:在 [ajax/json 教程] 期间,我只有一个错误。我一直按照教程进行操作,但是在输出“名称”的对象值时,我的输出一直得到“未定义”。我可以让它输出“Rick”的唯一方法是使用 console.log(user[0].name) 而不是教程中的“console.log(user.name)”。 var 用户是 JSON.parse,按照说明。
JSON 文件(user.json):
[
"id": 1,
"name": "Rick",
"email": "rick@mail.com"
]
html 文件 (ajax2.html):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Ajax 2 - Local JSON</title>
<style>
*, html background: #333; color: #eee;
</style>
</head>
<body>
<button id="button1">Get User</button>
<button id="button2">Get Users</button>
<br /><br />
<h1><div id="user"></div></h1>
<br />
<h2><div id="users"></div></h2>
<script>
function loadUser()
var xhr = new XMLHttpRequest();
xhr.open('GET', 'user.json', true);
xhr.onload = function()
if(this.status == 200)
var user = JSON.parse(this.responseText);
console.log(user.name); // Output name "Rick"
xhr.send();
document.getElementById('button1').addEventListener('click', loadUser);
</script>
</body>
</html>
我不断收到未定义的消息。但是编码:
if(this.status == 200)
console.log(this.responseText); // Output the object key/values
会正确输出对象。
关于为什么我会得到一个未定义的任何想法?我正在使用 XAMPP,我的 Chrome 浏览器也是最新的。
如果我需要添加任何信息,请告诉我。我一直在寻找可能的答案,但这只是把我带入了一个兔子洞。
【问题讨论】:
“而不是教程的内容” - 那么你的教程是错误的。user
是一个数组。
我的错误。我的意思是数组,而不是对象。尽管如此,我的问题仍然是为什么它适用于视频教程而不是我。我也感谢您解释其中的区别。
【参考方案1】:
您应该从 user.json 文件中删除括号。
"id": 1,
"name": "Rick",
"email": "rick@mail.com"
【讨论】:
谢谢!就是这样。我忽略了 user.json 文件中的括号。跳进兔子洞试图自己研究它,我的眼睛纵横交错。以上是关于在 JSON 调用中获取 UNDEFINED的主要内容,如果未能解决你的问题,请参考以下文章
在 Ionic 项目中获取并显示后端 json 数据作为下拉列表
如何从 GraphQL API 调用中获取 JSON 对象元素? [关闭]
如何从MVC5中的jquery ajax调用中获取部分视图和JSON数据?