使用 App Inventor 2 过滤 url JSON 结果

Posted

技术标签:

【中文标题】使用 App Inventor 2 过滤 url JSON 结果【英文标题】:Filter url JSON results using App Inventor 2 【发布时间】:2016-04-01 04:21:05 【问题描述】:

我正在尝试使用 App Inventor 2 过滤 JSON url 结果,遵循来自 here1 和 here2 的示例代码,但我仍然无法正确完成。我一次只能得到一个结果。

JSON结果是如下图所示形式的数据:


"field1":"alphaNumeric1",
"field2":"aNumber1",
"field3":"DD/MM/YY",
"field4":"HH/MM/SS",
"field5":"https://",
"field6":"aText",
"field7":"aNumber2",
"field8":"alphaNumeric2",
"field9":"aNumber3",
"field10":"alphaNumeric3"

JSON url 会不断更新,结果也会不断更新,但目前这不是问题。我可以通过计时器读取它。

问题是,从上面的结果来看,我需要在应用程序中根据标签解析“field2”、“field5”、“field6”。 因此,例如,当我输入“aNumber1”以在 JSON 数据中进行搜索时,并将结果放在标签中。

这种 JSON 数据搜索是否可以使用 App Inventor 2 完成?

如果可能,请任何足够友善的人回答示例块。 提前谢谢大家!

[编辑 1]

无论我如何尝试,JSON 都无法正确过滤。因此我要过滤 url 结果为 XML。

XML结果是如下图所示形式的数据:

<results>
<decision>
<alphaNumeric1>ABC1D</alphaNumeric1>
<aNumber1>ABCD</aNumber1>
<aDate>123</aDate>
<doc>HTTP</doc>
<aNumber2>1234</aNumber2>
<alphaNumeric2>TYPE</talphaNumeric2>
<aNumber3>12345</aNumber3>
<aNumber4>1234567</aNumber4>
<aText>SomeText</aText>
<aHour>00:00:00</aHour>
</decision>
.
.
.
<decision>
.
.
.
</decision>
.
.
.
</results>

我尝试按照here2 的示例进行操作,但我没有做对。根据 XML 输出,我应该在 startTag 和 endTag 中输入什么,以便在搜索时获得解析结果。 aNumber4 值 (= 1234567) ?

有人可以回答吗?

[编辑 2]

嗯,我正在尝试按照here3. 的示例在此处取得一些进展

解析 XML 时出现运行时错误“这不是格式正确的对列表”。

以下是我正在使用的块代码:

为什么会这样,因为我是按照这个例子来做的?有任何线索可以解决这个问题吗?

【问题讨论】:

通过appinventor.org 学习how to work with lists 和list of lists (pdf),然后尝试一下,如果仍有问题,请提供相关块的屏幕截图。 嗨@Taifun。我一直很欣赏你的建议,因为你似乎是应用程序发明者的大师,但我通过实际例子学习得更好。这就是我遵循示例代码块作为指导的原因。我的问题是,如果有可能有一个 JSON url 页面,它会不断地填充结果,并使用应用程序发明者搜索特定值。由于该页面在其字段中有超过 1500 多个逗号唯一值,如何制作关于此问题的可搜索列表? 将 JSON 转换为列表列表,然后使用 lookup in pairs 块搜索特定值,How does the lookup in pairs block work? 【参考方案1】:

嗯,你的积木看起来有点奇怪......

您有一个复杂的列表列表,只需使用 Do it 即可了解在使用lookup in pairs 的每一步之后它的样子...

关注已经提供的链接会有所帮助:

how to work with lists how to work with list of lists (pdf) by appinventor.org 另见An example of a complex List of Lists

在下面的示例块中,我查找了第一个 &lt;decision&gt;,并像这样在 Label1 中显示了标签 aDate 的值

您可能希望使用 for each in list 循环遍历不同的 &lt;decision&gt;s....

【讨论】:

以上是关于使用 App Inventor 2 过滤 url JSON 结果的主要内容,如果未能解决你的问题,请参考以下文章

从app inventor中的google sheet调用用户名和密码

MIT App Inventor使用与入门教程

《App Inventor 2 定制与二次开发》的配套资源和一些常用扩展插件的下载地址

《App Inventor 2 定制与二次开发》的配套资源和一些常用扩展插件的下载地址

App inventor的初级教程粗略地介绍

教授App Inventor课程