ich einen Tag weicht habe ein Datenobjekt wie folgt enthält:analysiert andstringify ein JSON-Objekt jquery
<a class="export-json" data-button="[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]">Export json</a>
Diese Werte basieren auf Daten-Taste wie folgt geführt:
$(".export-json").attr("data-button", data);
data
ist eine Liste welche enthält json
.
Daten ist wie folgt:
[{
name: "John",
position: "663",
a: 15,
b: 48
},
{
name: "311",
position: "663",
a: 12,
b: 48
}]
Deshalb möchte ich, dass die Daten-Objekt konvertieren und es als JSON-Datei herunterladen.
$(".export-json").click(function(){
var data = $.parseJSON($(this).attr('data-button'));
exportJson(this, data);
});
function exportJson(element, data) {
var results = "text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(data));
element.setAttribute("href", "data:"+results);
element.setAttribute("download", "data.json");
}
Wenn ich so tun, weil dies parseJSON
hier $.parseJSON($(this).attr('data-button'))
ich:
Uncaught SyntaxError: Unexpected token o in JSON at position 1
Wenn ich entferne die parseJSON
, wenn ich die Datei herunterladen Ich habe dies:
"[object Object],[object Object],[object Object],[object Object],[object Object]"
Ich weiß nicht, warum das passiert?
Wenn ich durch die Daten gehen alles corectly gedruckt:
for (var i = 0; i < data.length; i++) {
var item = data[i];
console.log(item);
}
mir jemand statt
Wie war 'data-button' an erster Stelle? – Hydrothermal
'[Objekt Objekt]' ist nicht JSON. Es ist das Ergebnis eines Aufrufs von 'toString()' an zufälligen Objekten, aber es kann offensichtlich nicht zu einem tatsächlichen Objekt zurückkonvertiert werden. Wie kommst du tatsächlich zu diesem Wert in diesem Attribut, und was versuchst du eigentlich damit zu tun? – jcaron
Sie müssen das 'JS-Objekt' analysieren, wenn das Anker-Tag ursprünglich generiert wurde, andernfalls werden Objektdaten als' [Objekt Objekt] ' – Derek