【问题标题】:Convert JSON object to protobuf IStruct将 JSON 对象转换为 protobuf IStruct
【发布时间】:2020-04-19 13:20:19
【问题描述】:

我正在使用Dialogflow API for Nodejs

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

为了请求 Dialogflow 向我发送特定平台的响应数据,I apparently need 将简单的 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 工具链进行大手术?

【问题讨论】:

标签: javascript protocol-buffers dialogflow-es


【解决方案1】:

Google Dialogflow 示例似乎是 updated 以使用 pb-util 包进行 JSON 到 protobuf 的转换。这个包很容易为encoding JSON to protobuf提供了一个方法,所以原问题中的例子就变成了:

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

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

还要感谢 @karthick 在 Dialogflow 示例存储库中找到 original structjson file

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-16
    • 2019-01-06
    • 2017-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多