AppInventor麻烦! (JSON-索引)

时间:2017-12-19 20:11:45

标签: android json app-inventor

所以我部分实现的是设置一个从这种形式的天气网站获取JSON文本的应用程序:

    {
"base": "stations",
"clouds": {
    "all": 20
},
"cod": 200,
"coord": {
    "lat": 40.94,
    "lon": 24.41
},
"dt": 1513711200,
"id": 735861,
"main": {
    "humidity": 100,
    "pressure": 1027,
    "temp": 274.15,
    "temp_max": 274.15,
    "temp_min": 274.15
},
"name": "Kavala",
"sys": {
    "country": "GR",
    "id": 5684,
    "message": 0.0039,
    "sunrise": 1513662178,
    "sunset": 1513695412,
    "type": 1
},
"visibility": 10000,
"weather": [
    {
        "description": "few clouds",
        "icon": "02n",
        "id": 801,
        "main": "Clouds"
    }
],
"wind": {
    "deg": 51.0029,
    "speed": 3.07}}

将其解码为一个列表并将结果存储在app中的一些标签盒中。我想从这个JSON中使用的值是:

  

(" main":{" temp":}," weather":{" main":},"主要":{"湿度":},"风":{"速度}"。

我使用集成的json解码功能和App Inventor的索引非常有效地完成了这项工作。

区块代码照片: enter image description here

(屏幕红色指针应该是"天气":{"主要":}值)

我的问题是,对于某些城市(应用搜索用户输入的城市名称中的数据)"天气":{" main":}和&#的索引34;风" {"速度}"是不同的。 有什么办法可以为这个问题设置检查程序吗?

  

例如,对于"天气":{" main":}通常的索引,因为它可以在我的代码(图像)中看到是创建的11 2 1 4 2对于具有不同索引并以错误回应的城市,我认为它是10 2 1 4 2。

目标:所以我想要做的是找到一种方法来检查11 2 1 4 2上的元素是否存在所以我可以使用它,否则查找索引为10 2 1 4 2的元素。< / p>

更新:目标已完成尽管JSON畸形2依赖查找成对修正了问题!

1 个答案:

答案 0 :(得分:1)

不要像目前那样使用嵌套的选择列表项块... 更好的方法是使用成对循环块,数据序列将不再重要...

How does the lookup in pairs block work? enter image description here

更多链接