web-dev-qa-db-ja.com

キャッチされていません(約束されています)SyntaxError:予期しないトークン 'フェッチ関数内

このような構造のJSONファイルがいくつかあります(これをinfo.jsonと呼びます)。

_{
  'data': {
    'title': 'Job',
    'company': 'Company',
    'past': [
      'fulltime': [
        'Former Company'
      ],
      'intern': [
        'Women & IT',
        'Priority 5'
      ]
    ],
    'hobbies': [
      'playing guitar',
      'singing karaoke',
      'playing Minecraft',
    ]
  }
}
_

別のJavaScriptファイルには、次のような関数があります。

_function getJSONInfo() {
  fetch('info.json').then(function(response) {
    return response.json();
  }).then(function(j) {
    console.log(j);
  });
}
_

getJSONInfo()を実行すると、このエラーが発生し続けます:

_Uncaught (in promise) SyntaxError: Unexpected token '
_

何が欠けていますか?どこにも迷子の_'_がないので、何が悪いのかわかりません。

6

有効なjsonの属性には二重引用符が必要です。

http://jsonlint.com/ などのjsonバリデーターを使用して、構文が正しいかどうかを確認できます。

また、shayanypnが指摘したように、「過去」は配列ではなくオブジェクトである必要があります。 「過去」をオブジェクトリテラルとして定義しようとしていますが、角括弧を使用して配列を示しています。

7
Collin

あなたはまったく無効です

1-二重引用符を使用する必要があります

2-オブジェクト属性の構文が間違っています

"past": [
    "fulltime": [
        "Former Company"
    ],
    "intern": [
        "Women & IT",
        "Priority 5"
    ]
],

それは寝るべきです

"past": {
    "fulltime": [
        "Former Company"
    ],
    "intern": [
        "Women & IT",
        "Priority 5"
    ]
},

あなたの有効なjsonは

{
    "data": {
        "title": "Job",
        "company": "Company",
        "past": {
            "fulltime": [
                "Former Company"
            ],
            "intern": [
                "Women & IT",
                "Priority 5"
            ]
        },
        "hobbies": [
            "playing guitar",
            "singing karaoke",
            "playing Minecraft"
        ]
    }
}
2
Shayan