2014-05-23 10 views
6

Ich weiß nicht, was das Problem, das ich in JSON.parse oben Syntaxfehler bekam, die ich bin wieSyntax JSON.parse unerwartetes Zeichen in Zeile 1, Spalte 1 der json Daten

unten Code
Storage.prototype.setObject = function(key, value) { 
    this.setItem(key, JSON.stringify(value)); 
} 

Storage.prototype.getObject = function(key) { 
    var value = this.getItem(key); 
    return value && JSON.parse(value); 
} 

function main() { 
    var data = { 
     "a":"something1", 
     "b":"something2" 
    }; 
    sessionStorage.setObject('data',data); 
    var newData = sessionStorage.getObject('data'); 
    console.log(newData); 
} 

während GetObject aufrufen ('Daten') Ich habe den Fehler in "Firefox", während "kein Fehler" in Chrom hilft mir, das Problem herauszufinden, ich oben separat ausführen Beispielcode und es funktioniert gut für mich, aber in meinem Projekt, wo ich etwas tun Gleiches verursacht Fehler.

+0

Ich wette 'this.getItem (key)' wird nicht zurückkehren, was Sie erwarten, debuggen es einfach. – VitaliyG

+0

'Ich laufe über Beispiel-Code getrennt und es funktioniert gut für mich, aber in meinem Projekt, wo ich etwas tun, die gleichen es Fehler verursachen. Versuchen Sie, Ihr Problem in Ihrem Projekt zu isolieren. Da es so aussieht, als ob bestimmte Daten, mit denen Sie in Ihrem Projekt zu tun haben, das Problem verursachen. – chestozo

+0

Debug: Was ist 'console.log (Wert);'? Setzen Sie es, bevor Sie versuchen, zu analysieren und zurückzukehren. – epascarello

Antwort

1

Ich bekomme keine Fehler in Firefox oder Chrome. Sie können jedoch diese Ausnahme für das Debuggen fangen durch einen try/catch Block zum getObject Methode Hinzufügen

Storage.prototype.getObject = function(key) { 
    var value = this.getItem(key); 
    if (value) { 
     try { 
      value = JSON.parse(value); 
     } catch (err) { 
      console.error("Error parsing stored data: " + err); 
     } 
    } 
} 
Verwandte Themen