Mein Formular im HTML-DOM ist ein Kontrollkästchen zum Klicken (es kann mehrere sein). Das Problem tritt in der Beschreibungszeichenfolge auf, wann immer ich ein Apostroph verwende, da mein Listenobjekt eine einzelne Anführungsstriche enthält. Dies ist eines der Kontrollkästchen in der Form:Wie JSON zu JavaScript-Array zu string
<input type="checkbox" id="cbx" name="cbx" value="{'getPic': 'url', 'picsrc': 'http://lh3.ggpht.com/_ZB3cttqooN0/SVmJPfusGWI/AAAAAAAADvA/GuIRgh6eMOI/Grand%20Canyon%201213_121508214.JPG', 'pos': None, 'description': 'Here's what it REALLY looks like at 5:30am! Bring your headlight!'}">
Die Javascript, das die Werte der geprüften Kontrollkästchen liest und schiebt sie in ein Array (Liste):
var pylist = [];
for (i=0; i<document.picList.cbx.length; i++) {
if (document.picList.cbx[i].checked) {
pylist.push(document.picList.cbx[i].value);
}
}
var getstr = JSON.stringify(pylist);
Das Problem ist immer, dass getstr An dieser Stelle wurde nach dem Anführungszeichen in der Beschreibungseigenschaft alles abgehackt. Ich habe verschiedene Möglichkeiten ausprobiert, um es zu vergeblichen.
Als Referenz ist dies kein gültiger JSON. Die Strings müssen doppelt zitiert werden, und jeder anständige JSON-Serializer wird dies tun. – cHao