2016-04-07 6 views
0

Ich habe die folgenden HTML-Tags, die von Back-End-jquery Daten Parsen nicht Wert html5 Daten benutzerdefiniertes Attribut

<select name="brand" class="form-control"> 
    <option value="1" data-info="[{id=1, name=detail#1}, {id=2, name=detail#2}, {id=3, name=detail#3}]">brand#1</option> 
    <option value="2" data-info="[{id=3, name=detail#3}, {id=4, name=detail#4}, {id=5, name=detail#5}]">brand#2</option> 
</select> 

Ich versuche, Daten-Info-Wert zuzugreifen, wenn der Benutzer ändern Option, so dass ich diesen Code versuchen

Aber wenn ich Typeof Info bekomme ich eine Zeichenfolge, und ich brauche und Objekt.

Wenn ich JSON.parse versuchen (info) i erhalten Syntaxerror: JSON.parse: erwartete Eigenschaftsnamen oder '}' in Zeile 1 Spalte 3 der JSON-Daten

Ich verstehe diese Fehler für sein könnte zwei Gründe info ist bereits geparst oder es ist nicht gültig json.

Jede Hilfe ist

geschätzt
+0

Die JSON, die Sie haben, ist ungültig –

Antwort

3

jQuery JSON-Handler nur übersetzt gültig JSON. Der JSON, den Sie dort haben, ist nicht gültig. Insbesondere fehlen die erforderlichen Anführungszeichen und Sie verwenden = statt :.

<option value="1" data-info='[{"id":1, "name":"detail#1"}, {"id":2, "name":"detail#2"}, {"id":3, "name":"detail#3"}]'>brand#1</option> 

Als Referenz the JSON spec: Es sollte so etwas wie lesen.

+0

Sie haben Recht @Ouroborus, ich habe gerade den Fehler im Backend behoben, jetzt wird gültig JSON wie Sie vorschlagen, und ich bekomme Objekte –