如何访问从API返回的哈希/对象?

时间:2019-06-18 03:15:47

标签: bixby

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

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

  2. 如果我必须将哈希转换为Bixby结构,是否可以通过编程方式实现?

现在,我为对象中的所有键创建了一大堆原语,然后创建了一个将所有这些原语作为属性的结构。我希望我丢失了一些东西,因为返回的哈希可能包含100个密钥。

1 个答案:

答案 0 :(得分:1)

  

为了引用该哈希的键/值(例如,在对话中),我是否必须将哈希转换为结构? (或者是否可以“直接”访问对象。)

是的,如果您想这样做,必须定义一个structure

  

如果我必须将哈希转换为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个不同的字段并希望在计划程序中使用它们,否则这可能是解决问题的方法。