下面有一个 JSON 文件,我将其另存为 Flipkart.json:
flipkart = '[{
"signup1":
{
"firstname": "ravi",
"lastname" : "kota",
"mobileno" : 9555558039,
"DOB" : "19-Mar-1980",
"emailid" : "kota.raavi@gmail.com",
"password" : "password"
}}]';
我编写了一个 Javascript 文件,如下所示,我将其另存为 script.js:
function load()
{
var mydata = JSON.parse(flipkart);
//alert(mydata[0].firstname);
//alert(mydata[0].lastname);
alert(ravikota);
}
我的 HTML 代码是:
<html>
<head>
<title>askyb - Load JSON File Locally by Javascript Without
JQuery</title>
<script type="text/javascript" src="C:\Users\Kota
Ravi\Desktop\rainbow\flipkart.json"></script>
<script type="text/javascript" src="C:\Users\Kota
Ravi\Desktop\rainbow\script.js"></script>
</head>
<body onload="load()">
askyb - Load JSON File Locally by Javascript Without JQuery
</body>
</html>
当我尝试打开同一目录中的 html 文件时,HTML 控制台给出的错误为:
Uncaught SyntaxError: Invalid or unexpected token
script.js:3 Uncaught ReferenceError: flipkart is not defined
at load (script.js:3)
at onload (rainbow.html:7)
我想知道为什么控制台无法识别我的 flipkart.json
文件。谢谢。
最佳答案
您的 JSON 无效,如果您想在不使用 Javascript 的情况下包含它,那么从技术上讲,您只是创建一个其中包含对象数组的文件。 JSON 文件无法像脚本一样包含在页面中,然后在您尝试完成时被引用。
此外,如果您要将其创建为有效的 JSON,它必须看起来更像这样。但就您而言,这并不能解决问题。
[
{
"signup1": {
"firstname": "ravi",
"lastname": "kota",
"mobileno": 9555558039,
"DOB": "19-Mar-1980",
"emailid": "kota.raavi@gmail.com",
"password": "password"
}
}
]
让我们修复您的代码。首先,将 flipkart.json
重命名为 flipkart.js
并更改 HTML 中包含的脚本以首先包含它:
flipkart = [{
"signup1":
{
"firstname": "ravi",
"lastname" : "kota",
"mobileno" : 9555558039,
"DOB" : "19-Mar-1980",
"emailid" : "kota.raavi@gmail.com",
"password" : "password"
}}];
这将创建一个名为 flipkart
的全局变量,可以从其他脚本和页面中的任何位置访问该变量。我建议阅读全局变量的缺点,虽然你的方法有效,但它是有缺陷的。
在其中,我们创建一个数组并用一个对象填充它。这只是一个标准数组和 Javascript 对象,它不是 JSON。
最后,在 script.js
中将此行 var mydata = JSON.parse(flipkart);
替换为 var mydata = Flipkart;
或者更好的是,只需直接引用 flipkart
即可,无需在脚本中创建 mydata
变量。
关于javascript - 未捕获的语法错误 : Invalid or unexpected token script. js:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44961595/