gpt4 book ai didi

krl - 在 KRL 中处理响应

转载 作者:行者123 更新时间:2023-12-04 16:20:44 25 4
gpt4 key购买 nike

我正在使用 KRL 通过他们的 API 向 google 发送请求,这是我从他们那里得到的字面响应:

handleResponse({ "data": { "responses": [ { "response": "successful" } ] } } );

您建议我如何通过 pick 处理它,因为它不是“有效”的 JSON 语法?它包含有效的 JSON 语法,但作为一个整体是无效的。感谢您的帮助。

最佳答案

更新:查看 Google 翻译 API 后,JSONP 回调参数似乎是可选的。不要指定回调,您将不再遇到此问题。 :)

http://code.google.com/apis/language/translate/v2/using_rest.html#WorkingResults

更好的选择:

如果可以,请在对 google API 的调用中指定没有回调函数。如果您可以只请求纯 JSON 而不是 JSONP,您可以只使用 pick 运算符。

不是更好的选择:

如果 API 仅返回 JSONP,那么您可以执行正则表达式替换以从 JSON 中删除填充,这样您就可以使用 pick 运算符。

你需要什么:

完整的应用示例:

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);
|>;
}
}
}

关于krl - 在 KRL 中处理响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4475402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com