【问题标题】:Google Cloud Vision API response structureGoogle Cloud Vision API 响应结构
【发布时间】:2018-10-09 04:19:40
【问题描述】:

调用 vision.documentTextDetection() 时得到这个响应

[{ 
    faceAnnotations: [],
    landmarkAnnotations: [],
    logoAnnotations: [],
    labelAnnotations: [],
    textAnnotations: [],
    localizedObjectAnnotations: [],
    safeSearchAnnotation: null,
    imagePropertiesAnnotation: null,
    error: null,
    cropHintsAnnotation: null,
    fullTextAnnotation: null,
    webDetection: null,
    context: null 
}]

有些属性是空数组,有些是空数组有什么意义?
我正在尝试进行条件渲染,但当 IRL 不是时,我会卡在真实值上。

【问题讨论】:

  • 能否请您把问题说得更生动一点?
  • 如何进行条件渲染?由于这是一个 json,如果你不想要这些属性,你可以很容易地忽略空值。
  • @kvk30 谢谢!我试图根据 if-else 调用各种函数。由于空数组是真的,我认为这背后有一定的逻辑。
  • 您好,我建议您通过考虑数组的长度来进行条件渲染。如果它是一个空数组,那么它的长度将为0,所以你可以忽略它。
  • 我认为,他们已经定义了一个默认的 API 结构来发送到它收到的每个请求。那是因为 API 不仅负责文本检测,还负责图像检测、微笑检测等其他事情。cloud.google.com/vision/docs/reference/rest/v1/images/annotate 上面的链接显示了默认的响应结构。

标签: google-cloud-vision


【解决方案1】:

我不能代表 API 的创建者发言,但就您编写更少的代码来完成更多的工作而言,这是有道理的。

如果所讨论的数组字段始终是数组而不是其他任何东西,那么您只需在代码中假设它们是数组。这意味着如果您想知道该数组中是否返回了某些内容安全,那么您所要做的就是检查数组的长度,或者只是迭代它。

另一方面,如果有问题的数组字段是有时数组,可能为空,那么你必须编写代码首先检查数组字段是否为空,然后编写代码来检查数组。

你更愿意做什么? 1)假设该字段是一个数组并处理它。或者2)检查它是否真的是一个数组,然后这样处理它?在我看来,假设数组更方便,编写更少的代码。

【讨论】:

  • 从这个角度来看,现在一切都说得通了。另外,也许您知道是否可以在 Node 中组合 2 个请求,而不是单独调用,例如vision.faceAnnotations() 和 vision.documentTextDetection() 在同一张图片上?
  • 这听起来像是一个不同的问题要问 SO。
猜你喜欢
  • 2019-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-07
  • 2021-12-06
  • 2019-12-07
  • 1970-01-01
相关资源
最近更新 更多