2016-05-23 14 views
-3

Ich kann den Fehler nicht finden, den ich mache. Ich habe es auch in JSONLint geschrieben, verstehe aber nicht, was mit dem Fehler in Zeile 1 gemeint ist: "STRING", "}" zu erwarten, wurde "undefiniert". Ich habe den Code von der ersten Klammer ausgeführt {wie Sie JSON ausführen. Was bedeutet der Fehler?Mein Javascript Verschachteltes Objekt funktioniert nicht

var work = { 

    jobs: [{ 

     job: { 

     employer: "boss1", 
     title: "title1", 
     location: "dddd", 
     dates: "ddmmyy" 
     } 
    }, 

    { 
     job: { 

     employer: "boss2", 
     title: "title2", 
     location: "ffff", 
     dates: "ddmmyy" 
     } 
    } 
    ] 
}; 
+0

Haben Sie versucht, einen JSON-Validator zu verwenden? Sie haben ungültiges JSON. Alle Ihre Objekteigenschaften müssen Zeichenfolgen sein. – evolutionxbox

+1

Was meinst du mit "funktioniert nicht"? Soll das JSON oder ein JavaScript-Objekt sein? Dies ist ein perfekt gültiges JavaScript-Objekt. – forgivenson

Antwort

2

Dies ist nicht JSON, dann ist es ein Stück JavaScript-Code, um ein Objekt zu der Variablen work zuweist.

Dies ist JSON:

{ 
    "jobs": [{ 
    "job": { 
     "employer": "boss1", 
     "title": "title1", 
     "location": "dddd", 
     "dates": "ddmmyy" 
    } 
    }, { 
    "job": { 
     "employer": "boss2", 
     "title": "title2", 
     "location": "ffff", 
     "dates": "ddmmyy" 
    } 
    }] 
} 

Beachten Sie, wie es keine variable Zuordnung ist und die alle Eigenschaftsnamen sind in Anführungszeichen gesetzt werden. Ansonsten ist Ihr Objekt in Ordnung. Wenn Sie JavaScript-Code (wie den, den Sie gepostet haben) überprüfen müssen, können Sie JSHint verwenden, es wird Sie über Syntaxfehler informieren.

+0

Danke @Daniel Diekmeier. Die doppelten Anführungszeichen haben das Problem behoben. Und ja, ich habe den JSON-Teil nur beim Testen in JSONLint ausgeführt, ohne ihn dem Objekt zuzuweisen. – Feyt

0

Sie müssen doppelte Anführungszeichen um Ihre Objektschlüssel setzen diese gültige Json zu machen:

{ 
    "jobs":[ 
     { 
     "job":{ 
      "employer":"boss1", 
      "title":"title1", 
      "location":"dddd", 
      "dates":"ddmmyy" 
     } 
     }, 
     { 
     "job":{ 
      "employer":"boss2", 
      "title":"title2", 
      "location":"ffff", 
      "dates":"ddmmyy" 
     } 
     } 
    ] 
} 

Alternativ können Sie JSON.stringify (Arbeit) verwenden, um einen JSON-String aus dem Objekt zu erzeugen, kann ich nicht sehe irgendwelche Probleme damit, obwohl ich es noch nicht getestet habe.

Verwandte Themen