Dies ist der JavaScript-Teil, der in Frage steht. Ich verwende JSON.parse und wenn ich es in der Konsole logge, wird der Beschreibungsschlüssel/-wert nicht angezeigt.JSON.parse (request.responseText) gibt nicht alle Daten zurück
var jsonOptions = JSON.parse(request2.responseText);
jsonGlobal = jsonOptions;
console.log(request2.responseText);
meine JSON-Datei sieht wie folgt aus
[{"level": "1","number": "1","title": "blah blah blah","description": "aaaa"},
{"level": "1","number": "1.1","title": "blah again","description": "aaa" }]
Dies ist die volle Javascript ist
<script>
var dataList2 = document.getElementById('json-datalist');
var input2 = document.getElementById('ajax2');
var request2 = new XMLHttpRequest();
var jsonGlobal ;
request2.onreadystatechange = function (response) {
if (request2.readyState === 4) {
if (request2.status === 200) {
// Parse the JSON
var jsonOptions = JSON.parse(request2.responseText);
jsonGlobal = jsonOptions;
console.log(request2.responseText);
// console.log(jsonGlobal)
// Loop over the JSON array.
jsonOptions.forEach(function (item) {
// Create a new <option> element.
var option = document.createElement('option');
// Set the value using the item in the JSON array.
option.value = item.title;
option.setAttribute('data-number', item.number);
option.setAttribute('data-description',item.description); // add this line for description
//<--
// Add the <option> element to the <datalist>.
dataList2.appendChild(option);
});
// Update the placeholder text.
input2.placeholder = "Start Enterting a Title...";
} else {
// An error occured :(
input2.placeholder = "Couldn't load datalist options :(";
}
}
};
// Update the placeholder text.
input2.placeholder = "Loading options...";
// Set up and make the request2.
request2.open('GET', '/static/json/all-titles.json', true);
request2.send();
</script>
Dies ist, was
in der Konsole erscheint[
{
"level": "1",
"number": "1",
"title": "blah blah blah"
},
Irgendwelche Gedanken auf, warum der Beschreibungsteil ist nicht auftauchen?
Funktioniert Ihr Skript? Erhalten Sie irgendwelche Fehler, zB von 'JSON.parse'? Oder ist es nur die 'console.log', die dich nervt? – Bergi
'JSON.parse' würde einen Fehler bei partiellem JSON auslösen. Was sagt das Netzwerk-Panel, sendet der Server alle erwarteten Werte? Ich könnte mir vorstellen, dass die Konsole zu lange Saiten abschneidet. – Bergi
Das Skript wirft keine Fehler, aber JSON.parse liest nicht alle JSON vollständig ein, was es mir nicht erlaubt, diesen Wert zu verwenden und ihn in eine Update-Funktion zu übergeben. Ich habe mein JSON über jsonlint.com ausgeführt, um es zu validieren, und es genehmigt es auch –