首页 > 解决方案 > 如何访问从 API 返回的哈希/对象?

问题描述

我正在调用一个返回大哈希/对象的 API。我有两个问题:

  1. 为了引用该散列的键/值(例如,在对话中),我是否必须将散列转换为结构?(或者有没有办法“直接”访问对象。)

  2. 如果我必须将哈希转换为 Bixby 结构,有没有办法以编程方式做到这一点?

现在,我已经为对象中的所有键创建了一大堆原语,然后是一个将所有这些原语作为属性的结构。我希望我缺少一些东西,因为返回的哈希可能有 100 个键。

标签: bixby

解决方案


为了引用该散列的键/值(例如,在对话中),我是否必须将散列转换为结构?(或者有没有办法“直接”访问对象。)

structure是的,如果您想这样做,您必须定义 a 。

如果我必须将哈希转换为 Bixby 结构,有没有办法以编程方式做到这一点?

不是这个时候,没有。为了省去必须为散列中的每个字段创建 100 多个不同模型的痛苦,您可以使用visibility密钥来重用概念。

例如,

structure (Group) {
  description (Represents a group.)
  property (id) {
    type (viv.core.Text) // Normally you can't have two properties of the same type.
    min (Required) max (One)
    visibility (Private) // But with this key, the planner cannot see this concept and won't be confused.
  }
  property (name) {
    type (viv.core.Text) 
    min (Required) max (One)
    visibility (Private)
  }
(more properties here)
}

另一种选择是只在 JavaScript 中生成对话,并为您想说的任何内容提供一个“对话”字段。这可能是要走的路,除非您特别需要在模型中建模 100 个不同的字段并希望在规划器中使用它们。


推荐阅读