javascript - 未捕获的语法错误 : Invalid or unexpected token script. js:

标签 javascript

下面有一个 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/

相关文章:

javascript - 使用 javascript 添加点击高度

javascript - 如何将 UUID 类型转换为 ULID 类型?

javascript - 使用 JavaScript AJAX 脚本可以完成多少网络故障排除?

javascript - elasticsearch 自动建议返回棘手的 JSON

javascript - 如何添加不区分大小写的照片库搜索框jquery

javascript - 如何动态地创建/输入一个项目作为无序列表中另一个项目的子列表项目?

javascript - 在 box-sizing :border-box is set in CSS? 时,JavaScript 中有没有一种方法可以直接获取元素的内容宽度

javascript - Jquery - 根据后续后代中是否存在类来排除元素?

javascript - Backbone.js 主从 View 、导航问题(包括 jsfiddle)

javascript - 与 jQuery 中的工具提示交互