Mise à jour: Après avoir regardé l'API Google translate, il semble que le paramètre de rappel JSONP soit facultatif. Ne spécifiez pas de rappel et vous n'aurez plus ce problème. :)
http://code.google.com/apis/language/translate/v2/using_rest.html#WorkingResults
meilleure option:
Si vous pouvez, spécifier dans votre appel à l'API Google qu'il n'y ait pas de fonction de rappel. Si vous pouvez simplement demander JSON au lieu de JSONP, vous pouvez simplement utiliser l'opérateur pick.
Pas si meilleure option:
Si l'API renvoie uniquement JSONP alors vous pouvez le faire remplacer une expression rationnelle pour enlever le rembourrage du JSON qui vous permettra d'utiliser l'opérateur de sélection.
Qu'est-ce que vous aurez besoin:
exemple de l'application complète:
ruleset a60x494 {
meta {
name "jsonp-to-json-test"
description <<
jsonp-to-json-test
>>
author "Mike Grace"
logging on
}
global {
returnedJsonpAsString = 'handleResponse({ "data": { "responses": [ { "response": "successful" } ] } });';
datasource googleApi <- "blah blah blah";
}
rule fix_jsonp_to_json {
select when pageview ".*"
pre {
cleanJson = returnedJsonpAsString.replace(re/^.*\((.*)\);/,"$1");
response = cleanJson.decode().pick("$..response");
}
{
notify("Response",response) with sticky = true;
emit <|
console.log(returnedJsonp);
console.log(cleanJson);
|>;
}
}
}
Quelle API? Google en a quelques uns .... :) – TelegramSam
Désolé. L'API de traduction. – jshakespear
Quelle méthode de l'API de traduction? Pouvez-vous partager votre code de demande? L'API dispose d'une option pour utiliser JSONP ou renvoyer JSON brut. – TelegramSam