【问题标题】:cannot define a JSON array无法定义 JSON 数组
【发布时间】:2018-12-15 02:15:15
【问题描述】:

我正在尝试将 JSON 文件中的数据获取到 Angular 应用程序中,问题是我将使用此文件作为本地数据库,它将包含多个数组,因此我必须为数组命名,但是当我尝试将其定义为 vs 指出它是一个错误。

这是数组

var historybooks = [
{
    "name" : "book1",
    "id" : "his-1",
    "author" : "omar",
    "discription" : "lorem ipsum dolor ....",
    "image" : "./assets/books-images/book1.png"
}
]

vs 错误“应为 JSON 对象、数组或文字。”

我也试过用 let 代替 var 得到同样的错误。

【问题讨论】:

  • 你不能在 json 文件中“命名”一个数组。您要做的是将属性添加到对象作为标识符

标签: arrays json typescript


【解决方案1】:

您不能在 JSON 中声明变量。请删除声明。

如果你想声明更多的数组,你可以在同一个文件中这样做:

{
"array1":[{"key":"value","key":"value"}],
"array2":[{"key":"value","key":"value"}]
}

【讨论】:

    【解决方案2】:

    只需删除 json 的 decalartion 部分,就可以进行这样的操作了。

       [
        {
        "Neymary": "pleaseStopDiving"
        }
       ]
    

    【讨论】:

      【解决方案3】:

      事实上你不能写声明,在一个 JSON 文件中你所能做的就是直接在文件上写你的 JSON 对象或数组。

      这就是你收到错误的原因:

      “需要一个 JSON 对象、数组或文字。”

      因为您在 JSON 文件中编写 JavaScript 代码,所以删除声明部分:

      [
      {
          "name" : "book1",
          "id" : "his-1",
          "author" : "omar",
          "discription" : "lorem ipsum dolor ....",
          "image" : "./assets/books-images/book1.png"
      }
      ]
      

      【讨论】:

      • 所以如果我想要多个数组,我需要制作多个 JSON 文件
      • @OmarMohmedAbdelhady 是的,您需要将每个数组放在一个单独的文件中,您不能使用var historybooks = 声明。
      • @OmarMohmedAbdelhady 太好了,很高兴它有帮助。
      【解决方案4】:

      这之后的代码可能被解释为数组的索引或类似的东西
      尝试在数组后添加分号:

      var historybooks = [
        {
            "name" : "book1",
            "id" : "his-1",
            "author" : "omar",
            "discription" : "lorem ipsum dolor ....",
            "image" : "./assets/books-images/book1.png"
        }
      ]; // <= here

      【讨论】:

      • 不,我必须在单独的文件或数组对象中制作它
      【解决方案5】:

      如果文件是 JS 文件,请使用以下代码:-

      export var historybooks = [
      {
          "name" : "book1",
          "id" : "his-1",
          "author" : "omar",
          "discription" : "lorem ipsum dolor ....",
          "image" : "./assets/books-images/book1.png"
      }
      ]
      

      如果要将文件命名为 .json,请使用以下代码:-

      [
      {
          "name" : "book1",
          "id" : "his-1",
          "author" : "omar",
          "discription" : "lorem ipsum dolor ....",
          "image" : "./assets/books-images/book1.png"
      }
      ]
      

      您可以发出 Ajax 请求以获取 .json 文件。

      【讨论】:

      • 第二个数组我想添加多个数组,这可能吗? ,因为我想用作数据库
      • 如果你把它做成一个.json文件,你可以创建一个对象,然后在里面定义不同的数组
      • 包含 JS 文件的不错选择,但请记住,Internet Explorer 等旧版浏览器不支持 export
      • 感谢@chŝdk 的澄清,但它不会工作,因为它是一个角度应用程序,并且会使用 webpack 编译成本机 JS 代码?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-05
      • 2016-03-14
      • 1970-01-01
      • 1970-01-01
      • 2011-03-31
      • 2016-04-24
      • 2016-08-07
      相关资源
      最近更新 更多