ajax - urlencodeter Text decodieren
otto der viertel vor zwölfte
- javascript
Hi,
der Sender schickt in etwa folgendes:
{"text":"urlencodeter text","bild":""http://www.irgendwo.de/bild.gif"}
auf der Empfangsseite steht:
function zplText(){
if(xhr.readyState ==4){
var daten = xhr.responseText;
daten = JSON.parse(daten);
document.getElementById("zText").innerHTML = daten[text];
}
}
das klappt aber nicht.
1. offensichtlich wurde durch JSON.parse() der ankommende String nicht in ein array überführt.
2. wie kriege ich den urlcodierten Text in javascript wieder decodiert?
Danke
hi,
- wie kriege ich den urlcodierten Text in javascript wieder decodiert?
Der ist nicht x-www-urlencoded. Wenn er es wäre, decodeURIComponent();
Horst
Hallo!
Hi,
der Sender schickt in etwa folgendes:{"text":"urlencodeter text","bild":""http://www.irgendwo.de/bild.gif"}
Das ist übrigens invalides JSON (da ist ein " zuviel).
var daten = xhr.responseText;
daten = JSON.parse(daten);
document.getElementById("zText").innerHTML = daten[text];
das klappt aber nicht.
Ja, weil keine Variable namens »text« existiert. Auf der JavaScript-Konsole müsste ein entsprechender Fehler angezeigt werden. Hast du dort mal geschaut?
- offensichtlich wurde durch JSON.parse() der ankommende String nicht in ein array überführt.
Es kommt auch kein Array heraus, sondern ein Object.
Auf die Eigenschaften eines Objekts kann man in JavaScript einfach so zugreifen:
daten.text
daten.bild
- wie kriege ich den urlcodierten Text in javascript wieder decodiert?
In deinem Beispiel sehe ich keine URL-Kodierung, sondern nur eine unnötige JSON-String-Kodierung. In JSON kann man durchaus schreiben:
{ "bild": "http://www.example.com/foo/bar/quux.jpg" }
Wenn Backslashes zum Escaping verwendet werden, dann werden die JSON-Parsing wieder rückgängig gemacht. JSON-Beispiel:
{ "text": "Text \\ mit \\ vielen \\ Backslashes" }
Nach dem Parsen bekommt man folgenden String heraus:
Text \ mit \ vielen \ Backslashes
Wenn JSON sinnvoll verwendet wird, musst du wahrscheinlich nichts händisch dekodieren.
Mathias
Danke,
Deine Erklärung hats gebracht.
Ich war auf dem total falschen Dampfer, habs aber jetzt begriffen.
Und es klappt :).