¿Cómo obtener datos específicos en función de la entrada del usuario desde la URL usando Oraclize?

Estoy usando 'testrpc' y 'truffle' para el desarrollo.

El siguiente es el código de contrato utilizado.

pragma solidity ^0.4.0;
import "./usingOraclize.sol";

contract WeatherApiCall is usingOraclize {

           function WeatherApiCall() {
              OAR = OraclizeAddrResolverI(0x5049063e4a7704ac155e4f1f42a4954bbef5bbde);
           }

           function __callback(bytes32 myid, string result) {
                if (msg.sender != oraclize_cbAddress()) throw;

                }

           function update() payable  {
                  oraclize_query("URL", "json(http://api.openweathermap.org/data/2.5/forecast?q='india'&mode=json&APPID=d2e8279188c8649c17540f798c9cc972).list.0.weather.0.main");
           }
 }

La estructura json de la url es la siguiente: -

    {
            "city": {
                  "id": 1273840,
                  "country": "IN" 
            },
            "list": [
                     {
                      "dt": 1486360800,
                       "weather": [
                                     {
                                       "id": 500,
                                       "main": "Rain",
                                       "description": "light rain"
                                      }
                                  ],
                                  "dt_txt": "2017-02-06 06:00:00"
                        },
                        {
                          "dt": 1486371600,
                           "weather": [
                                       {
                                        "id": 801,
                                        "main": "Clouds",
                                        "description": "few clouds"
                                      }
                                     ],
                                       "dt_txt": "2017-02-06 09:00:00"
                                     }
                          ]
           }

La URL dada "json ( http://api.openweathermap.org/data/2.5/forecast?q= 'india'&mode=json&APPID=d2e8279188c8649c17540f798c9cc972).list.0.weather.0.main" devuelve el resultado como "Lluvia ".

¿Tengo que recuperar el resultado como "Lluvia" o "Nubes" en función de la entrada de fecha especificada por el usuario? ¿Cómo podemos obtener las condiciones meteorológicas en función de la entrada del usuario?

Respuestas (1)

La consulta de Oracle en solidity se actualizará de la siguiente manera: -

 oraclize_query("URL", "json(http://api.openweathermap.org/data/2.5/forecast?q='india'&mode=json&APPID=d2e8279188c8649c17540f798c9cc972).list[?(@.dt_txt='2017-02-08 12:00:00')].weather[0].main");

Devolverá el resultado según sea necesario.