Object-literal & Javasript

  • Hallo,
    ich versuche gerade 'var waeh' in ein Object-literal umzuformen und das 'fetch' so zu formulieren das es dies aufnimmt. Leider funktioniert es aber nicht und ich weiss nicht was ich tun kann.

  • Erstmal: Was sagt denn deine Konsole?




    Dann hast du hier einen Fehler:

    JavaScript
    for(x=0;x<waeh.length;x++){
     // ...
    }

    Ein Object (in deinem Fall waeh) hat keine Eigenschaft "length".

    Also ist "from_currencyEl" leer und du kannst natürlich keinen Wert auslesen.

  • Danke

    Das sagt jetzt meine Konsole

    Failed to load resource: the server responded with a status of 404 (Not Found)

    :63342/1_Semester_2021/LB02/waeh:1

    Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0

    index.html:1

  • Dann findet er die Datei, di du laden möchtest nicht.

    Da ich deine Daten nicht kenne, kann ich dir dabei nicht helfen.
    Du kannst ja mal in den "Network-Tab" deiner Developer-Tools schauen, da siehst du den Request nochmal und kannst genau schauen, welcher Dateipfad nicht gefunden wird.

  • Ich habe das jetzt noch einmal angeschaut mit der Datei. Leider funktioniert es aber immer noch nicht und jetzt steht dies in der Konsole.


    Uncaught (in promise) SyntaxError: Unexpected token } in JSON at position 112

  • Dies:

    Zitat

    Failed to load resource: the server responded with a status of 404 (Not Found)

    sagt eindeutig aus, dass die Datei, die Du lesen wolltest, nicht gefunden wurde. In dem Fall liefert der Server eine Fehlerseite aus und weil diese nicht im JSON-Format ist, kommt es zu dem Fehler:

    Zitat

    Uncaught (in promise) SyntaxError: Unexpected token } in JSON at position 112


    Du hast ja das Problem, das AndreasB in Posting #2 beschrieben hat. Korrigiere das zunächst. Wie Du über die Elemente eines Objektes iterieren kannst, kannst Du hier nachlesen:

    https://wiki.selfhtml.org/wiki…leifen_mit_.22for...in.22


    Liegt denn diese JSON-Datei wirklich lokal auf deinem Server?

  • [...]

    In dem Fall liefert der Server eine Fehlerseite aus und weil diese nicht im JSON-Format ist, kommt es zu dem Fehler:

    [...]

    Das sehe ich nicht so.
    Wenn die angeforderte Date nicht gefunden wurde, würde der Fehler
    Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0 fetch('foo').then(d => d.json()).catch(console.log)

    Sagen, denn der Browser versucht eine Webseite als JSON zu parsen. und scheitert an dem DOCTYPE.

    Code
    Uncaught (in promise) SyntaxError: Unexpected token } in JSON at position 112

    Sieht eher nach einem nicht validen JSON aus.

  • Also mit der externen json Datei scheint es bei mir irgendwie nicht zu funktionieren. Gibt es dann nicht irgendwie einen Weg das ich alles in den gleichen Code schreiben kann.

    Mit diesem Code funktioniert das ebenfalls nicht.

    Code
    fetch(`waeh${from_currency}`)
  • Gibt es dann nicht irgendwie einen Weg das ich alles in den gleichen Code schreiben kann.

    Natürlich geht das.
    Was steht denn in der Datei, die du laden willst?


    Um das Ganze zu debuggen kannst du:

    1. Du könntest den .then Aufruf nach dem .fetch ein wenig erweitern

    JavaScript
    .then(res => {
        console.log('Response', res);
        return res.json()
    })

    Dadurch würdest du den Response in die Konsole Loggen und sehen, welche Daten du empfängst.


    2. Was ich in #4 schonmal angedeutet hatte: Schau in den Network-Tab deiner Developer Tools. Dort siehst du alle Requests und Responses und dort kannst du gut sehen, welche URL du anfragst und auch welcher Response zurück kommt.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!