如何在 App Inventor 中检查 tinyDB 标签是否有任何属性

How to check if a tinyDB tag has any attributes in App Inventor

我需要一些帮助来解决 App Inventor 2 中的一个问题。案例是我有一个 JSON 解析的结果,然后将其作为列表存储在 tinyDB 标签中 (storeparseData) .

问题是,我在屏幕启动时完成了此功能,因此要用该 JSON 列表填充 tinyDB 标记,然后根据用户请求搜索特定值。

由于应用程序是 运行 并且我输入了搜索条件,我收到以下错误消息“参数 [empty-string ] 是 GetValue 的参数数量错误。我想,它没有找到要存储在 tinyDB 标签中的任何东西来搜索,导致 JSON 数据需要一些时间来获取和解析。

这是我现在为检查存储的列表是否在 tinyDB 中所做的工作:

这里我检查了tinyDB中的存储列表中的一个项目:

那么我如何检查 tinyDB 是否填充在这个标记中 JSON 结果列表,然后我可以搜索它?这在 App Inventor 2 中可行吗?

如果可能的话,请有人用示例代码块或类似教程(如果有的话)就此问题提出建议。预先感谢大家的回答。

这看起来很奇怪...一个复杂的 if then else 结构,大量的空套接字和您的比较 if "storeparsedData" = <empty string> 总是错误的...显然这没有意义...

看来你想的太复杂了? 这个怎么样:

正如 my answer to your other question 中已经推荐的那样,您应该学习如何使用列表...

另外做一些更多的教程可能有助于学习更多的基础知识...

回答你的问题“你能解释一下你为什么选择在那里创建一个空列表吗?”:如果你正在使用示例中的列表并且你是尝试从 TinyDB 中读取列表,那么您还必须考虑如果该标签在 TinyDB 中不可用(例如,在第一次启动应用程序之后),应该发生什么。对于列表,在这种情况下应该返回一个 空列表 。注意:is list empty? 块总是需要一个列表。如果将 valueIfTagNotThere 设置为空字符串,则会出现运行时错误...

您可以使用时钟功能来延迟时间。首先,只需将全局 DelayCountdown 设置为 "when Screen1.Initialize" 部分中的特定数字。然后,通过使用 "when Clock1.Timer" 函数,您只需要在执行另一个函数之前添加另一个检查 DelayCountdown 是否等于零。