Javascript in JSON Datei nachschlagen lassen?
Ich möchte eine Javascript Funktion Programmieren, die einen Text aus einem Eingabefeld(HTML) ausließt, anschließend jeden Buchstaben einzeln in einer JSON Datei nachschlägt und zum Schluss den zu den Buchstaben gehörenden Hexadezimalcode, der in der JSON Datei den Buchstaben zugeordnet ist, in ein anderes Textfeld(HTML) ausgibt.
Das mit dem auslesen und ausgeben, ist auch kein Problem, aber ich weiß nicht, wie ich den Javascript Code, mit der JSON Datei Arbeiten lassen kann, weil ich das noch nie gemacht habe und es nicht ganz verstehe.
Weiß irgendjemand, wie der Code dafür lautet und kann ihn am besten noch verständlich erklären?
2 Antworten
Wenn du das Zeichen in dessen in ASCII zugeordneten Hex code brauchst musst keine extra JSON benutzen. Da kannst du bei jedem char einfach .ToString(16) aufrufen womit dieses Zeichen in sein Hex code umgewandelt wird.
Wenn es sich um 'custom' hex Codes handelt kannst du eine JSON im z.B. folgenden Format erstellen:
{
"A": "0x0",
"B": "0x1",
"C": "0x2",
"D": "0x3"
}
Den Textinhalt von JSON Dateien kannst du immer mit JSON.parse() zu einem Objekt umwandeln.
In dem Beispiel gehe ich davon aus das es sich um eine Datei handelt und das du die JS im Browser ausführst:
fetch('hexCodes.json')
.then(response => response.json())
.then(data => {
// Hier kannst du die Daten weiter verarbeiten
// Beispiel
var char = 'A';
var hexCode = data[char]
})
.catch(error => console.error('Fehler beim Laden der Datei:', error));
lg Suiram1
Das Auslesen des JSON-Objekts kannst du mittels der Fetch API lösen. Die kann erst den Dateiinhalt via HTTP-Request anfordern und anschließend direkt auf ein JavaScript-Objekt mappen.
Beispiel:
fetch("URL to JSON file")
.then(response => response.json())
.then(data => {
/* do something ... */
});
Die data-Variable zeigt hierbei auf das erwähnte Objekt. Innerhalb des Callbacks kannst du nun über die Texteingabe iterieren und die entsprechenden Werte aus dem Objekt ziehen. Also ungefähr so:
const token = // get value of input field ...
let result = "";
for (const symbol of token) {
if (data.hasOwnProperty(symbol)) {
result += data[symbol];
}
}
// write result back to some input field ...