Plain Javascript-Äquivalent zu jQuery.param()
jQuery.param() nimmt ein array von Schlüssel-Wert-Paare, und wandelt es in eine Zeichenfolge, die Sie verwenden können, wie ein query-string in HTML-Anfragen. Zum Beispiel,
a = {
userid:1,
gender:male
}
bekommen würde umgewandelt
userid=1&gender=male
Ich versuche, den Aufruf von externen APIs auf server-Seite in einer Google Apps-Skript, die langen query-strings. Ich benutze das jQuery param-Funktion, aber es scheint keine einfache Möglichkeit zur Verwendung von jQuery auf der server-Seite in Google.
Könnten Sie mir einfachen javascript-code, erreicht die gleiche Funktionalität?
Die jQuery-Implementierung hier, aber ich möchte nicht das Risiko eingehen das überspringen über alle wichtigen details durch einfaches kopieren und kopieren Sie sich den code der Umgang mit "herkömmlichen".
- Ich fand, dass dies eine große Lösung: npmjs.com/package/jquery-param
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie auch mit reinem JavaScript, aber Sie haben zu schreiben mehr code-Zeilen. Versuchen Sie dies:
HTML-code zum testen:
JavaScript ausgelöst werden, onload:
Die Ausgabe ist:
Können Sie versuchen, diese auf JSFIDDLE.NET es funktioniert, hier der link: http://jsfiddle.net/ert93wbp/
Ihn in Aktion zu sehen hier:
https://www.webpackbin.com/bins/-KnpOI6hb1AzTDpN3wS7
ES6-version erlaubt das umwandeln von verschachtelten Objekten und arrays verwenden Sie einfach wie
encodeURI(getUrlString({a: 1, b: [true, 12.3, "string"]}))
.@Amaynut Antwort ist genial. Aber ich Tue etwas vereinfachen:
oder vielleicht modulize es mit es6-Modul:
util.js
und verwenden, wie diese:
Object.entries(obj).map(pair => pair.map(encodeURIComponent).join('=')).join('&')