Comment convertir une chaîne x-www-form-urlencoded en JSON?
Exampple de l'application/x-www-form-urlencoded chaîne
CorrelationId=1&PickedNumbers%5B%5D=1&PickedNumbers%5B%5D=2&PickedNumbers%5B%5D=3&PickedNumbers%5B%5D=4
En JSON
var gamePlayData = {
CorrelationId: gameId,
PickedNumbers: ["1","2","3","4"]
};
source d'informationauteur ruslander
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser qs si vous êtes à l'aide d'un noeud, ou browserify.
J'ai du faire avec ce récemment: j'ai eu à analyser des données qui peut contenir des objets imbriquées jusqu'à 5 niveaux de profondeur. J'ai besoin du code pour être en mesure de traiter à la fois assez complexe de données, mais pas manqué de décoder un URI aussi simple que
id=213
.J'ai passé pas mal de temps sur google pour essayer de trouver un (semi-)solution élégante à ce problème, et cette question ne cessaient de. Depuis, il obtient 1 vue/jour (donner ou prendre) j'ai décidé de poster ma solution ici, j'espère que ça aide quelqu'un:
Je l'ai testé, avec des données comme la chaîne ci-dessous (4 niveaux):
Qui justement retourne un objet, qui, lorsqu'il est passé à travers
JSON.stringify
sort comme ceci:Il passe un JSlint vérifier, en ignorant l'espace blanc,
.
et[^...]
et en acceptant++
. Dans l'ensemble, je considère que, pour être acceptable.le code suivant devrait faire l'affaire:
C'est un module de base de Node.js maintenant: https://nodejs.org/api/querystring.html#querystring_querystring_parse_str_sep_eq_options
Travaille avec les caractères codés en trop:
Voici une pure JavaScript façon de le faire. Frameworks JavaScript peut également vous aider avec ceci. EDIT:Juste pour le plaisir, je l'ai jeté dans le dictionnaire de l'analyse, trop. Voir le 2ème exemple.
Essayer this->
Ou de l'utiliser (JQuery) http://api.jquery.com/jQuery.param/
Vous avez besoin à l'opposé de jQuery.param. Une des options est http://benalman.com/code/projects/jquery-bbq/examples/deparam/