Convertir jsonp en json
Voici mon code
$.ajax({
type: "GET",
url: "http://example.com?keyword=r&callback=jsonp",
success: function (data) {
alert(data);
},
dataType: "jsonp",
error: function (xhr, errorType, exception) {
var errorMessage = exception || xhr.statusText;
alert("Excep:: " + exception + "Status:: " + xhr.statusText);
}
});
OK, donc le code ci-dessus fonctionne très bien et je suis de données en jsonp.Maintenant, je ne peux pas comprendre comment convertir jsonp json.
Il n'y a pas une telle chose comme "objet json". JSON est une croix-plate-forme de données sérialisées dans la forme d'une chaîne. Il est également différent de JSONP. Et comme @FelixKling dit, jQuery va automatiquement analyser dans un objet si vous avez tout fait correctement.
Vous ne devez pas ajouter
Lisez à propos de JSONP: stackoverflow.com/questions/3839966/...
Assurez-vous que votre serveur est la conversion de vos JSON pour un JSONP quand il est de retour à la demande. Il doit être enveloppé dans un appel de fonction.
eh bien en fait si je n'ajoute pas un rappel à l'url il n'est pas de travail dats y j'ai ajouté &callback=jsonp .Ses une url externe et les fichiers dat comment cela va fonctionner
Vous ne devez pas ajouter
&callback=jsonp
à l'URL, jQuery prendra soin de cela. Aussi, si tout fonctionne bien, data
devrait déjà être le JS objet dont vous avez besoin. Alors, quel est exactement votre problème? Qu'est-ce que data
?Lisez à propos de JSONP: stackoverflow.com/questions/3839966/...
Assurez-vous que votre serveur est la conversion de vos JSON pour un JSONP quand il est de retour à la demande. Il doit être enveloppé dans un appel de fonction.
eh bien en fait si je n'ajoute pas un rappel à l'url il n'est pas de travail dats y j'ai ajouté &callback=jsonp .Ses une url externe et les fichiers dat comment cela va fonctionner
OriginalL'auteur iJade | 2013-01-10
Vous devez vous connecter pour publier un commentaire.
Cet article peut vous donner quelques indications supplémentaires: Exemple de base de l'aide .ajax() avec JSONP?
Pouvez-vous nous donner un exemple de la structure de données renvoyées par la requête?
Dans votre cas particulier, vous pourriez probablement faire quelque chose de similaire à la suivante. Permettez-moi de savoir comment cela s'avère:
En fait, JSONP est pas de JSON à tous, c'est juste du code JavaScript.
Il n'y a pas de raison de eval dans ce cas... tu pourrais simplement faire
<script src="http://example.com?keyword=r&callback=jsonp"></script>
après la définition de cette fonction à l'échelle mondiale. jquery propose également des façons de faire de même domaine jsonp demande avec un jsonp rappel si vous devez utiliser jQuery pour faire la demande.Aucune raison de se sentir offensé ou offensant... juste essayer de clarifier les choses. Aussi je ne suis pas sûr si
eval(data)
serait à même de travailler ici. Je ne pense pas que jQuery passe à la source du script pour le succès de rappel, en raison de la façon JSONP fonctionne (je ne pense pas qu'il est même possible d'obtenir le code source).jQuery est en fait assez intelligent pour détecter les
callback=jsonp
créer à l'intérieur de l'URL, créer une fonction avec un tel nom, et qu'il est appelé à partir du script et de transmettre le résultat à la réussite de rappel. Voir: jsfiddle.net/Q42Mb/1.eval
ne fait rien dans ce cas.OriginalL'auteur Joshua Burns
C'est inutile. Ce que vous voulez, c'est un simple objet javascript pour fonctionner avec, et vous l'avez déjà (
data
).JSONP est un fichier de script lorsqu'une fonction est appelée avec un objet littéral. Le littéral ressemble JSON, et la fonction (dont le nom est généré dynamiquement) est le rembourrage.
JSON est un fichier/chaîne de caractères contenant les données dans JavaScript Object Notation, une commune de la sérialisation format.
OriginalL'auteur Bergi
Si vous obtenez une alerte de
alert(data)
, c'est déjà en cours de conversion. Vous devriez obtenir[object Object]
qui devrait vous dire que vous avez un objet JavaScript. Vous pouvez maintenant accéder à ses propriétés comme tout autre objet JavaScript.Il peut aussi être un tableau en fonction du json retourné.
OriginalL'auteur Kevin B
vous avez besoin d'une fonction:
la fonction est appelée automatiquement lorsque les données sont retournées/
OriginalL'auteur circusdei