2016-03-07 3 views
5

Ich habe ein paar JSON-Dateien, die wie folgt strukturiert sind (lassen Sie uns diese info.json nennen):Uncaught (in Versprechen) Syntaxerror: Unexpected token 'in Abruffunktion

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

und in einer separaten JavaScript-Datei, ich habe eine Funktion, die wie folgt aussieht:

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

Und ich erhalte diese Störung, wenn ich getJSONInfo() laufen:

Uncaught (in promise) SyntaxError: Unexpected token ' 

Was fehlt mir? Ich habe nirgends eine verirrte ', also bin ich mir nicht sicher, was los ist.

+0

Ich bekomme das gleiche Problem, aber meine Antwort kommt von .NET OAuth-Code, der für mich bis vor kurzem arbeitete. Kannst du dich erinnern, was das Problem war? – Tom

+0

@Tom es war, weil ich einfache Anführungszeichen anstelle von Anführungszeichen verwendet habe, ist es JSON ungültig, einzelne zu verwenden! –

Antwort

5

Sie müssen doppelte Anführungszeichen für Ihre Attribute für gültige JSON haben.

Sie können json-Validatoren wie http://jsonlint.com/ verwenden, um zu überprüfen, ob Ihre Syntax korrekt ist.

Auch, wie Shayanypn wies darauf hin, "Vergangenheit" sollte ein Objekt sein, anstatt ein Array. Sie versuchen, "Past" als Objektliteral zu definieren, verwenden aber eckige Klammern, um ein Array zu bezeichnen.

1

Sie ist bei allen

1- ungültig Sie doppelte Anführungszeichen

2- schlechte Syntax von Objektattribut

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

es sollte

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

Ihre gültige Bett

verwenden sollten JSON ist

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