我需要从DialogFlow获取参数到我的Android应用程序。
我尝试使用getQueryResult().getParameters().getFieldsMap(),
但结果如下。
{type=list_value {
values {
string_value: "pizza"
}
}
, ristorante=string_value: ""
}
我只想获取字符串值“pizza”,而不是整个 FieldMap。我已经看过这个话题,但它对我没有帮助,因为我不知道 protobuf 是什么,看起来有点复杂。
有没有一种简单的方法来获取参数的值?
如果您使用 Dialogflowv2
public String getParameter(GoogleCloudDialogflowV2WebhookRequest request, String parameterName) {
try {
GoogleCloudDialogflowV2QueryResult queryResult = request.getQueryResult();
Map<String, Object> parameters = queryResult.getParameters();
String parameter = (String) parameters.get(parameterName);
if(parameter != null && !parameter.equals("")) {
return parameter;
}
} catch (ClassCastException e) {
logger.error("Error");
}
return null;
}
如果您使用谷歌操作
public String getParameter(ActionRequest request, String parameterName) {
try {
Map<String, Object> parameters = request.getWebhookRequest().getQueryResult().getParameters();
String parameter = (String) parameters.get(parameterName);
if(parameter != null && !parameter.equals("")) {
return parameter;
}
} catch (ClassCastException e) {
logger.error("Error");
}
return null;
}
我看到两种可能性:
getFieldsMap()
方法返回一个 java.util.Map 类。您可以尝试通过首先获取值集合,然后迭代来检索值:
Collection colletion = <Detect_Intent_Object>.getQueryResult().getParameters().getFieldsMap().values():
for (iterable_type iterable_element : collection)
从我的拙见来看,bucle 是必要的,因为可能有多个参数。
示例代码:
import com.google.protobuf.util.JsonFormat;
String jsonString = JsonFormat.printToString(<Detect_Intent_Object>.getQueryResult().getParameters());
// Then use a json parser to obtain the values
import org.json.*;
JSONObject obj = new JSONObject(jsonString);
JSONArray jsonnames = obj.names();
方法 names()
会让你知道你想要访问的字符串名称。
问题内容: 我正在为SQLException编写通用记录器,我想获取传递给PreparedStatement的参数,该怎么做?我能够得到他们的数量。 问题答案: 简短的回答:不能。 长答案:所有JDBC驱动程序都会将参数值保留在某个地方,但是没有标准的方法来获取它们。 如果要出于调试或类似目的而打印它们,则有几种选择: 创建一个传递JDBC驱动程序(使用p6spy或log4jdbc作为基础),该驱
本文向大家介绍java中如何获取相关参数,包括了java中如何获取相关参数的使用技巧和注意事项,需要的朋友参考一下 此文通过一段代码来展示java获取相关参数的方法分享给大家: 希望大家能够喜欢。
问题内容: 我有这样的网址: 如何获取章节和帖子的参数值? 我的URL在Chapter参数的值中包含“&”。 问题答案: 您可以在Android中使用Uri类来完成此操作; https://developer.android.com/reference/android/net/Uri.html 这样,您甚至可以从查询参数中获取特定元素;
问题内容: 我有一个带有一些GET参数的URL,如下所示: 我需要获得的全部价值。我尝试读取该URL,但只有。如何使用JavaScript执行此操作? 问题答案: JavaScript 本身 没有内置处理查询字符串参数的内容。 在(现代)浏览器中运行的代码可以使用对象(它是浏览器提供给JS的API的一部分): 对于较旧的浏览器(包括Internet Explorer),您可以使用此polyfill
你好,我来自从URL获取JSON对象 我试着去买一顶帽子- 有人能告诉我我做错了什么吗?
问题内容: 我在从URL:获取值方面遇到问题。 帮助我更正我的控制器代码。我无法获得价值。 我的代码如下: : : : 问题答案: 快递4.x 要获取URL参数的值,请使用req.params 如果要获取查询参数,请使用req.query 快递3.x URL参数 查询参数
问题内容: 我在中定义了一个macrodef ,并用来完成这项工作。在这种情况下,我正在验证。 问题是没有检索传递的属性的值。有人知道您如何从javascript中获取属性的值吗? 问题答案: 原来我使用了错误的标签类型。为了使用脚本定义蚂蚁任务,我应该使用not 。使用预定义的对象可以访问任务中的属性和嵌套元素。 这适用于从Ant中的javascript访问属性:
问题内容: 我只是想获取Hibernate绑定到问号“?”后面的查询的值。在JBoss 7上。 所以我正在编辑以添加此内容: 但是我的控制台,日志文件都什么也没得到……我想念的是什么? 问题答案: 哇,它真的不像以前的版本…我终于找到了配置JBoss 7日志记录 和Hibernate 4日志记录配置 的正式方法! 您需要做的是编辑(您的的配置文件)并搜索标签。 然后在中,我已将级别信息切换为TRA