将 JSON 对象转换为 protobuf IStruct

2024-05-02

我正在使用Nodejs 的 Dialogflow API https://cloud.google.com/nodejs/docs/reference/dialogflow/0.8.x/google.cloud.dialogflow.v2.

这个 API 显然是由 Google 通过协议缓冲区实现的,尽管它提供了一个简单的基于 JavaScript/JSON 的接口,我已成功地将其用于简单的查询。

为了请求 Dialogflow 向我发送特定平台的响应数据,我显然需要 https://github.com/googleapis/nodejs-dialogflow/issues/132#issuecomment-406210509将简单的 JSON 对象编码为 protobuf 格式。链接的源代码给出了一个使用“structjson util”的示例,该示例可能可用于进行必要的转换:

const structjson = require('./structjson.js');

const request = {
    /* other properties omitted */
    queryParams: {
        payload: structjson.jsonToStructProto({source: 'ACTIONS_ON_GOOGLE'})
    },
};

不幸的是,为 structjson util 提供的链接已失效,我找不到任何其他参考。

除了对简单的 JSON 对象进行编码之外,我不需要做任何事情,如上面的示例所示。是否有一个简单的实用程序(运行时或命令行)可以用来执行此操作,而无需使用 protobuf 工具链进行大手术?


看来 Google Dialogflow 示例是updated https://github.com/googleapis/nodejs-dialogflow/pull/311/files使用pb-util https://www.npmjs.com/package/pb-util用于 JSON 到 protobuf 转换的包。这个包提供了一个方法将 JSON 编码为 protobuf https://github.com/callmehiphop/pb-util#structencodejson很容易,所以原来问题的例子就变成了:

const {struct} = require('pb-util');

const request = {
    /* other properties omitted */
    queryParams: {
        payload: struct.encode({source: 'ACTIONS_ON_GOOGLE'})
    },
};

还要感谢@karthick 找到了原始 structjson 文件 https://github.com/googleapis/nodejs-dialogflow/blob/d907f3af57438c3e88c274b100eab520b5b51062/samples/structjson.js在 Dialogflow 示例存储库中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 JSON 对象转换为 protobuf IStruct 的相关文章

  • 主干关系事件未触发?

    class TheModel extends Backbone RelationalModel relations type Backbone HasMany key subModels relatedModel SubModel coll
  • 调用“DOMNodeInserted”事件时添加元素

    我想在每个 喜欢 按钮 chrome 扩展 之后添加一个元素 由于帖子被添加到新闻提要而不刷新页面 我必须添加一个事件侦听器 DOMNodeInserted 但是当我尝试把after 里面的功能 它不起作用 Code contentArea
  • Ext JS - 如何滚动到文本区域的底部

    这是我下面的代码 如何滚动到文本区域的底部 它一定是类似的东西 Ext getCmp output setScrollPosition Ext getCmp output getScrollHeight 这是我的文本区域代码 var myW
  • 使用 Javascript 在 Imacros 中循环

    我如何使用 javascript 循环 imm imacros 脚本 我搜索了一下 发现了这个 for i 0 i lt n i iimPlay marconame iim 但当我使用它时 我的浏览器 Firefox 18 挂起 for i
  • 在浏览器中语音聊天? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我们正在寻求建立一个小组 voice 使用服务器上的node js 在浏览器中聊天 这可能吗 如果您希望您的解决方案是基于服务器端和客
  • 将一个文本框的内容复制到另一个文本框

    假设在文本框中输入了一个条目 是否可以在第二个文本框中保留相同的输入文本 如果是这样 这是如何完成的
  • Flask wtf.quick_form 运行一些 javascript 并设置表单变量

    我正在创建博客文章 到目前为止已经使用普通的 html 表单完成了 我所做的一个有趣的想法是运行 javascript onclick 并使用页面中的额外数据在表单中设置一个隐藏变量 这很好地传递到服务器并通过 request form 获
  • 创建 Cookie 时需要帮助

    我有一个名为yes和另一个名叫no
  • iframe 重新加载按钮

    我浏览了很多网站 但似乎没有一个能正常工作 或者我不明白它们 我想要一个刷新某个 iframe 的简单按钮 该按钮将位于父页面上 并且 iframe 名称为 Right 有很多方法可以做到这一点 假设这个iframe markup 我们可以
  • 用数组反向查找对象

    假设我有一个这样的对象 resourceMap a 0 1 2 3 4 5 6 7 8 9 10 b 11 12 c 21 23 d 54 55 56 57 510 确定是否的最佳方法是什么resourceId 21将会 c 我们不知道钥匙
  • 使用 jquery 将字符串数组转换为整数

    我正在尝试将 jquery 中的字符串数组转换为整数数组 这是我的尝试 var cdata data values split each cdata function i l l parseInt l 我认为在这种情况下你不需要使用 Jqu
  • 如何访问另一个 mobx 商店中的 mobx 商店?

    假设以下结构 stores RouterStore js UserStore js index js each of Store jsfiles 是一个 mobx 存储类 包含 observable and action index js只
  • 如何在网页上实现文件上传进度条?

    当用户将文件上传到我的网络应用程序时 我想显示比动画 gif 更有意义的内容 我还有哪些可能性 编辑 我正在使用 Net 但我不介意是否有人向我展示与平台无关的版本 如果您对这一切在客户端通常如何工作感兴趣 就是这样 所有解决方案都通过 J
  • 如何在 e2e AngularJS 测试中进行文件上传?

    在我的一种观点中 我有一个文件上传控件 它支持通过拖放或单击按钮后打开的标准文件对话框上传文件 How to do this in my e2e tests1 1 Just one of the two options will be en
  • 有关于 PHP 中的 V8JS 的文档吗?

    有没有关于V8JS的文档 我是否只需要标准 PHP 或一些扩展即可使用 V8JS 我将非常感谢有关 PHP 中的 V8JS 的任何信息 要求 PHP 5 3 3 和 V8 库和标头安装在正确的路径中 Install http www php
  • window.showModalDialog 的等效跨浏览器解决方案是什么?

    window showModalDialog 的等效跨浏览器解决方案有哪些 showModalDialog 在 IE 和 FF 3 中引入 我个人认为没有 但是有很多 UI 工具包提供了这样的功能 例如jQuery UI http jque
  • 如何获取使用 .map 渲染的第一个元素的 ref?

    我需要在几行中显示视频 卡片 的缩略图 并重点关注第一个缩略图 我使用嵌套地图进行了显示 该代码基本上迭代视频数组并返回多行视频 我们如何关注第一个渲染的元素 我认为我们需要获得第一个要聚焦的元素的引用 但是我们如何在这里设置 ref 并在
  • React Native - 跨屏幕传递数据

    我遇到了一些麻烦react native应用程序 我不知道如何跨屏幕传递数据 我意识到还有其他类似的问题在 SO 上得到了回答 但是这些解决方案对我来说不起作用 我正在使用StackNavigator 这是我的设置App js file e
  • 当选择下拉列表中的某些值时,取消选中复选框

    当我从下拉列表中选择某个值或用户未从下拉列表中选择任何值时 我需要取消选中复选框 我现在正在使用 Jquery 这是我现在使用的代码 但它不起作用 Script
  • 如何在 SVG 元素上使用箭头标记?

    我需要在 d3 js 中创建一个箭头 但我找到的只是带有节点图的示例 我需要的是简单地制作一个从 A 点到 B 点的箭头 我尝试实现以下示例中的部分代码 http bl ocks org 1153292 http bl ocks org 1

随机推荐

  • `uwsgi_modifier1 30` 指令没有按照记录从 PATH_INFO 中删除 SCRIPT_NAME

    这是我的 nginx 虚拟主机配置 debian cat etc nginx sites enabled mybox server listen 8080 root www index index html index htm server
  • 如何集成 sympy 表达式和 Latex 格式

    您好 提前感谢您的帮助 我正在尝试将数学格式与 sympy 表达式混合在一起 我正在使用 jupyter 笔记本 我可以在单独的行上获得乳胶和漂亮的 sympy 打印 但似乎无法找到一种方法将它们组合成一行 下面的代码打印三行 第三行应该是
  • 当id包含点时,如何使用jquery通过ID选择html节点?

    如果我的 html 看起来像这样 td class controlCell td
  • Log4j 显示包名称

    现在对于我的 ConversionPattern 我有 log4j appender A1 layout ConversionPattern d yyyy MMM dd HH mm ss SSS 5p t F L m n 我想做的还包括包含
  • 如何防止Excel单元格更新?

    我有一个相当大的范围 10 000 行 10 列 我每天都会逐行填充它 我还有一个较小的范围 366 行 5 列 其中 对于每个单元格 我运行一个宏 该宏的作用与 DSUM 或 SUMIF 的作用几乎相同 但具有多个条件 问题是 在实现了这
  • 最大值和最小值的算法? (目标-C)

    这是我正在阅读的一本学习 Objective C 的书的一部分 下面定义了一个名为 MAX 的宏 它给出了两个的最大值 价值观 define MAX a b a gt b a b 然后书中有一些练习要求读者定义一个宏 MIN 找到两个值中的
  • 从 Google Chat POST 请求验证 JWT

    我有一个 NodeJS 机器人使用 HTTPs 端点连接到 Google Chat 我正在使用快递来接收请求 我需要验证所有请求是否都来自 Google 并且希望使用 Google 随请求发送的不记名令牌来执行此操作 我的问题是我正在努力寻
  • 找出最后获得焦点的控件

    我有一个带有几个文本框和一个按钮的 C Windows 窗体应用程序 我想找出具有焦点的文本框并用它做一些事情 我已经编写了以下代码 但它当然不起作用 因为按钮一旦按下就会获得焦点 private void button1 MouseDow
  • 在winforms设计器中,我可以关闭烦人的双击->事件处理程序创建背后的代码吗?

    大多数时候这很方便 但有时我想关闭它 有人知道怎么做吗 没有这个选择 解决方法很简单 只需键入 Ctrl Z 并单击 是 即可
  • 我可以使用什么 Linq 查询来按类别返回所有产品的计数?

    给定以下表结构 如何使用 Linq 查询返回类别名称列表以及该类别中的产品总数 Category ID Name Product ID IDCategory Name 我理想的回报是 Clothes 156 Electronics 2149
  • 处理多个切换

    我陷入了一个toggle 噩梦 终于寻求帮助 我想要的很简单 我有三个链接 a showcountries bronze a showcountries silver a showcountries gold 和三个盒子 countries
  • Android 底部菜单栏

    我想在我的应用程序底部实现一个菜单栏 就像我在 Facebook Google stumble 等许多主要应用程序中看到的那样 见下图 其关键方面是它覆盖在实际内容的顶部 当您向下滚动时 它会消失 但当您向上滚动时它会回来 由于很多应用程序
  • 优化 itoa 功能

    我正在考虑如何使用SSE指令实现整数 4字节 无符号 到字符串的转换 通常的例程是将数字相除并将其存储在局部变量中 然后反转字符串 本示例中缺少反转例程 char convert unsigned int num int base stat
  • 当第一个套接字连接时加载两个图像而不是一个 - Node.js

    我正在尝试在我的游戏中实现多人游戏功能 我在用着node js为了这 当一个人连接时 应该将一张图像加载到浏览器中 相反 它加载两个图像 这是我班级的一部分 var count 0 Keep track of which player we
  • 如何使用elasticsearch进行分页?来自 vs 滚动 API

    我使用elasticsearch作为数据库来存储大量日志数据 我知道有两种方法可以进行分页 使用大小并来自 API 使用滚动API 现在我使用 from 进行分页 从前端和后端获取页面和大小参数 Java searchSourceBuild
  • 是否有可能比 O(n log n) 更好地计算数字列表的中位数?

    我知道可以在 O n 中计算数字列表的平均值 但是中位数呢 有没有比排序 O n log n 和查找中间元素 或者如果列表中有偶数个项目则两个中间元素的平均值 更好的算法 是的 您可以在 O n 时间内 确定性地 完成此操作 http ww
  • 当文件太大时,Flask 会重置连接而不是返回 413

    When MAX CONTENT LENGTH已定义 Flask 应该返回 413 但在我的例子中 它会重置连接并显示以下错误 Error 101 net ERR CONNECTION RESET The connection was re
  • 如何在 PHP 中解析和处理 HTML/XML?

    如何解析 HTML XML 并从中提取信息 Answer recommended by PHP collectives php Collective 原生 XML 扩展 我更喜欢使用其中之一原生 XML 扩展 https php net m
  • Bootstrap 如何从一个类切换到下一个类?

    我试图理解Bootstrap 3的反应能力 我明白在css如果一个元素有 2 个类 那么第二个类将覆盖第一个类 但是 当您使用以下命令创建响应式设计时Bootstrap 您的元素将如下所示 div class col sm 1 col md
  • 将 JSON 对象转换为 protobuf IStruct

    我正在使用Nodejs 的 Dialogflow API https cloud google com nodejs docs reference dialogflow 0 8 x google cloud dialogflow v2 这个