Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Uncaught (in promise) SyntaxError: Unexpected token ' in fetch function

I have a couple JSON files that are structured like this (let's call this info.json):

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

And in a separate JavaScript file, I have a function that looks like this:

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

And I keep getting this error when I run getJSONInfo():

Uncaught (in promise) SyntaxError: Unexpected token '

What am I missing? I don't have a stray ' anywhere so I'm not sure what's wrong.

like image 239
Cassidy Avatar asked Mar 07 '16 19:03

Cassidy


2 Answers

You need to have double quotes for your attributes for valid json.

You can use json validators such as http://jsonlint.com/ to check if your syntax is correct.

Also, as shayanypn pointed out, "past" should be an object, rather than an array. You are trying to define "past" as an object literal but are using square brackets to denote an array.

like image 94
Collin Avatar answered Sep 19 '22 12:09

Collin


you is invalid at all

1- you should use double quotes

2- bad syntax of object attribute

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

it should bed

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

your valid json is

{
    "data": {
        "title": "Job",
        "company": "Company",
        "past": {
            "fulltime": [
                "Former Company"
            ],
            "intern": [
                "Women & IT",
                "Priority 5"
            ]
        },
        "hobbies": [
            "playing guitar",
            "singing karaoke",
            "playing Minecraft"
        ]
    }
}
like image 40
Shayan Avatar answered Sep 18 '22 12:09

Shayan